2017-08-17 40 views
1

我目前正在研究一个小型项目,需要通过tweepy与python一起发送推文,并且包含它们的纬度/经度。我目前有这个代码执行成功,但我不知道如何验证推文是否成功地理编码,如果我使用免费的网站来查看地理位置的推文,我的似乎从来没有出现,那么在那里一种方式,我可以肯定,Twitter接受我的纬度/经度值,并相应地对推文进行地理编码?如何使用tweepy验证Tweet是否为地理定位/接受坐标

import tweepy 

CONSUMER_KEY = 'xxxxxxxxxxxxxxxxx' 
CONSUMER_SECRET = 'xxxxxxxxxxxxxxxxx' 
ACCESS_KEY = 'xxxxxxxxxxxxxxxxx' 
ACCESS_SECRET = 'xxxxxxxxxxxxxxxxx' 
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) 
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET) 
api = tweepy.API(auth) 

tweet = raw_input("Tweet text: ") 

latitude = 51.51XXXXX 
longitude = -0.13XXXXX 

api.update_status(tweet, lat = latitude, long = longitude) 

print "Sent" 

值得一提的是,如果我做了下面的搜索,我的鸣叫不显示(和鸣叫有单词“测试”在里面)。但是再次,这可能是因为他们没有在免费的API上使用的所有内容

results = tweepy.Cursor(api.search, q='test', geocode="51.5129418,-0.1322831,1km").items(10) 

for result in results: 
    print result.text 
+0

您可能需要包含一个[place_id](https://dev.twitter.com/rest/reference/post/statuses/update) – brennan

+0

我怎么知道这是什么? /有没有一个列表/你可以发布这个答案? –

+0

N.B.即使我添加place_id = 6416b8512febefc9(例如)...我怎么知道它已成功交付并被接受为位置? –

回答

2

想来想去,我发现了答案:

1)简单的问题可能会绊倒人了这条 - 您可能需要启用帐户的地理位置! (Duh,woops!)...在设置中检查“带有位置的Tweet”(这基本上是我的问题)。

2)当你更新状态时,你只需要传递lat和long,place_id等等是可选/可选方式的位置。这并不是必须将您的地理位置传递给Twitter - 事实上,如果您通过Tweepy传递给Twitter的技术问题存在技术问题,Twitter几乎肯定会出错。

3)要检查您的推文是否为geo-ed,您将在推文信息中看到geoenabled为True,然后您将在json中看到lat和long。

4)因为很少的推文是geo启用,那么你应该在大多数免费地图服务上看到它,因为它们不会达到速率限制。一个很好的检查是在这里:http://onemilliontweetmap.com/

相关问题