如何使用tweepy验证Tweet是否为地理定位/接受坐标
问题描述:
我目前正在研究一个小型项目,需要通过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
答
想来想去,我发现了答案:
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/
您可能需要包含一个[place_id](https://dev.twitter.com/rest/reference/post/statuses/update) – brennan
我怎么知道这是什么? /有没有一个列表/你可以发布这个答案? –
N.B.即使我添加place_id = 6416b8512febefc9(例如)...我怎么知道它已成功交付并被接受为位置? –