2016-11-11 98 views
2

请教育我,因为我希望这是可能的。我正在研究当前在其后端服务器端使用Node.js的移动应用程序。使用Twitter的API我目前从静态的位置(例如纽约市)流鸣叫:Node.js服务器端解决方案找到用户位置

twit.stream('statuses/filter',{ 'locations':'-74,40,-73,41'}, 
function(stream) { 
     stream.on('data', function(data) 

反正是有,我可以调整这段代码,如果用户移动,微博现在自动从流的新的位置?换句话说,如果用户现在在迈阿密佛罗里达州,我的目标是让服务器自动从该区域发送推文;和他们一样,如果他们开车到盖恩斯维尔佛罗里达或飞往亚特兰大格鲁吉亚等...

我需要Nodejs自动从用户的新位置流推文。无论如何要这样做?

我认为我必须创建一个变量var location = latitude, longitude 我该从哪里出发?

这里是我的代码示例:

var twitter = require('ntwitter'); 
var twit = new twitter({ 
    consumer_key: credentials.consumer_key, 
    consumer_secret: credentials.consumer_secret, 
    access_token_key: credentials.access_token_key, 
    access_token_secret: credentials.access_token_secret 
}); 

//Streaming from the static location of New York City 
twit.stream('statuses/filter',{ 'locations':'-74,40,-73,41'}, 
function(stream) { 
     stream.on('data', function(data) { 


      console.log(data.text); 
+1

您无法从node.js获取用户位置,您可以从IP地址获得非常广泛的位置,但这不是很准确。你需要在客户端机器上运行一些东西来发送它的位置。 – Keith

+0

@Keith我认为你应该对这个问题的答案做出评论。 – yeiniel

+0

@Keith我明白,无法从节点获取用户的位置。然而,可以说我的用户不再在纽约,并在新泽西度过了周末;如果他们允许我的应用程序访问他们的新位置isent,我的应用程序现在可以自动从新泽西传送推文吗? –

回答

1

最好的位置粒度最可靠的办法是从您的移动应用程序通过地理位置纬度/经度上。唯一不利的是,你的应用程序(假设Android或iOS)会询问用户是否可以共享应用程序中的地理位置信息,但用户只会被询问一次。您不会提供更多关于您的移动应用程序的详细信息,但如果它是使用PhoneGap/Apache Cordova编写的,请随时ping我,如果某些代码片段会有所帮助。

另一种选择是传递IP并通过服务进行IP位置查找。但是,这通常可能非常不可靠,甚至常常会处于错误状态。

有了这两个选项,请记住它很容易欺骗错误的位置。