TwitterHTTPError При получении трендов в Twitter - PullRequest
1 голос
/ 20 марта 2019

Я пытаюсь понять, почему я получаю эту ошибку. Этот код взят из онлайн-класса, который я посещаю. Я изменяю LOCAL_WOE_ID на мой локальный идентификатор WOE, и именно тогда я получаю ошибку. Если я использую идентификатор для крупного города, все в порядке.

import pickle
import os
if not os.path.exists('secret_twitter_credentials.pkl'):
    Twitter={}
    Twitter['Consumer Key'] = '...'
    Twitter['Consumer Secret'] = '...'
    Twitter['Access Token'] = '...'
    Twitter['Access Token Secret'] = '...'
    with open('secret_twitter_credentials.pkl','wb') as f:
        pickle.dump(Twitter, f)
else:
    Twitter=pickle.load(open('secret_twitter_credentials.pkl','rb'))

WORLD_WOE_ID = 1
US_WOE_ID = 23424977

LOCAL_WOE_ID=2344925

# Prefix ID with the underscore for query string parameterization.
# Without the underscore, the twitter package appends the ID value
# to the URL itself as a special case keyword argument.

world_trends = twitter_api.trends.place(_id=WORLD_WOE_ID)
us_trends = twitter_api.trends.place(_id=US_WOE_ID)
local_trends = twitter_api.trends.place(_id=LOCAL_WOE_ID)

Я получаю эту ошибку.

TwitterHTTPError: Twitter sent status 404 for URL: 1.1/trends/place.json using parameters: (id=2344925&oauth_consumer_key=...&oauth_nonce=...&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1553037060&oauth_token=...&oauth_version=1.0&oauth_signature=...)
details: {'errors': [{'code': 34, 'message': 'Sorry, that page does not exist.'}]}

Ответы [ 2 ]

1 голос
/ 20 марта 2019

Похоже, что проблема связана с тем, что LOCAL_WOE_ID из 2344925 не подходит для API Twitter.

Twitter предоставляет еще один API twitter.trends.available(), который предоставляет список всех доступных поддерживаемых WOEID.Документы API находятся по адресу: https://developer.twitter.com/en/docs/trends/locations-with-trending-topics/api-reference/get-trends-available.html

2344925 НЕ отображаются в этом списке (хотя он обнаружен в некоторых других поисках WOEID, например https://www.flickr.com/places/info/2344925), расхождение предположительно из-за Yahoo! в настоящее время не полностью поддерживает данные «Где на Земле» (https://en.wikipedia.org/wiki/WOEID).

0 голосов
/ 14 июня 2019

Я беру тот же класс и получил ту же ошибку.

Я нашел обходной путь. Поскольку Yahoo больше не выдает WOEID, и вам нужно использовать его только для приложения Twitter, вы сможете найти ближайший к нему город в списке; пробег

twitter_api.trends.available() 

в вашем блокноте jupyter (конечно, после установки и импорта твиттера). Это даст вам список городов, и вы можете ctrl + f для своего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...