2014-12-19 8 views
0

Я пытаюсь найти твиты по геолокации. Я пытаюсь получить чириканье в Нью-Йорке с помощью:Получить Tweets по Geolocation с помощью twython

twitter = Twython(app_key, app_secret, oauth_token, oauth_token_secret) 

geocode = "42.3482° N, 75.1890° W" 

search_results = twitter.search_geo(count=10,geocode=geocode) 

    try: 
     for tweet in search["statuses"]: 
     print(tweet ['text']) 

она возвращает ошибку

Traceback (most recent call last): 
    File "D:\Projects\M Tools\Twython\My works\new.py", line 18, in <module> 
    search_results = twitter.search_geo(count=10,geocode=geocode) 
    File "C:\Python34\lib\site-packages\twython-3.2.0-py3.4.egg\twython\endpoints.py", line 818, in search_geo 
    return self.get('geo/search', params=params) 
    File "C:\Python34\lib\site-packages\twython-3.2.0-py3.4.egg\twython\api.py", line 263, in get 
    return self.request(endpoint, params=params, version=version) 
    File "C:\Python34\lib\site-packages\twython-3.2.0-py3.4.egg\twython\api.py", line 257, in request 
    api_call=url) 
    File "C:\Python34\lib\site-packages\twython-3.2.0-py3.4.egg\twython\api.py", line 198, in _request 
    retry_after=response.headers.get('X-Rate-Limit-Reset')) 
twython.exceptions.TwythonError: Twitter API returned a 400 (Bad Request), You must provide valid coordinates, IP address, query, or attributes. 

ответ

0

Параметр геокод должен быть похож на следующее в конечном итоге поиска вызова Twitter:

41.8734,-70.6394,5mi 

В соответствии с запросом в консоли API для Twitter (https://dev.twitter.com/rest/tools/console)

Возвращает твиты пользователей, расположенных в пределах заданного радиуса данных широта/долгота. Место предпочтительнее берет с API-интерфейса Geotagging , но будет возвращаться к их профилю Twitter. Значение параметра определяется «широтой, долготой, радиусом», где единицы радиуса должны быть указаны как «mi» (мили) или «км» (в километрах). Обратите внимание, что вы не можете использовать ближайший оператор через API для геокодирования произвольных местоположений; однако вы можете использовать этот параметр геокода для непосредственного поиска вблизи геокодов. При использовании радиуса будет учитываться не более 1000 отдельных «подрегионов».

0

В Twython, метод search_geo используется для поиска place_id для «мест», которые находятся в пределах радиуса, предоставленной геолокации. Вам необходимо использовать метод search:

from twython import Twython, TwythonError 


app_key = 'your_app_key' 
app_secret = 'your_app_secret' 
oauth_token = 'your_oauth_tokem' 
oauth_token_secret = 'your_oauth_secret' 

twitter = Twython(app_key, app_secret, oauth_token, oauth_token_secret) 

geocode = '42.3482,75.1890,1mi' # latitude,longitude,distance(mi/km) 

search_results = twitter.search(count=10, geocode=geocode) 

try: 
    for tweet in search_results['statuses']: 
     print (tweet['text']) 
except TwythonError as e: 
    print(e)