У меня есть скрипт на python, который извлекает статистику для моего канала YouTube.Я использовал этот пример кода здесь .Я загрузил секретный ключ клиента, авторизованный API-интерфейс YouTube Analytics и смог увидеть некоторые данные в ответе.
Теперь я пытаюсь получить данные для другого канала YouTube.
Я знаюМне нужен поток OAuth для получения согласия пользователя, но если я пытаюсь изменить код по ссылке выше и использовать другой channel_id
вместо MINE
, я получаю следующую ошибку:
Traceback (most recent call last):
File "test_targeted_query.py", line 45, in <module>
sort='day'
File "test_targeted_query.py", line 26, in execute_api_request
**kwargs
File "/Users/giacomo.vannucchi/miniconda3/envs/test_yt_api/lib/python2.7/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper
return wrapped(*args, **kwargs)
File "/Users/giacomo.vannucchi/miniconda3/envs/test_yt_api/lib/python2.7/site-packages/googleapiclient/http.py", line 851, in execute
raise HttpError(resp, content, uri=self.uri)
googleapiclient.errors.HttpError: <HttpError 403 when requesting https://youtubeanalytics.googleapis.com/v2/reports?sort=day&startDate=2017-01-01&endDate=2017-12-31&dimensions=day&ids=channel%3D%3DUCU-d47GBZwqo1zfB-OTu-1w&metrics=views%2Clikes&alt=json returned "Forbidden">
КогдаЯ запускаю скрипт, он перенаправляет на страницу Google OAuth и, кажется, работает правильно, но затем я получаю сообщение об ошибке при выполнении запроса.Та же самая ошибка происходит и с API Explorer .
. Внесенный мною пример кода я должен использовать определенный channel_id
в поле идентификаторов вместо ids='channel==MINE'
, как показано ниже.:
if __name__ == '__main__':
# Disable OAuthlib's HTTPs verification when running locally.
# *DO NOT* leave this option enabled when running in production.
os.environ['OAUTHLIB_INSECURE_TRANSPORT'] = '1'
youtubeAnalytics = get_service()
execute_api_request(
youtubeAnalytics.reports().query,
ids='channel==XXXXXXXXXXXXXXXX',
startDate='2012-01-01',
endDate=today,
metrics='views,likes',
dimensions='day'
)
Ошибка, похоже, связана с проблемой разрешения, но я не уверен, что я делаю неправильно, потому что пользователь авторизует приложение.
Может ли кто-нибудь указать мне правильное направление или предоставить некоторые ресурсы, чтобы понять, как построить этот поток?
Можно ли как-нибудь получить аналитические данные от любого пользователя (channel_id), используя OAuth?