2017-08-17 90 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/

相關問題