@karmoed

Почему получаю ошибку Security token is invalid для donation alerts?

Запускаю скрипт, открывается вкладка в браузере, приложение просит разрешение. Нажимаю "Разрешить".
Происходит редирект на пустую страницу с ошибкой "Security token is invalid".

Если я всё верно понимаю:

(сгенерированные данные для примера)
API_KEY = '9qqLIoNFGEctIaFWfPqWwDBOtVQ6sIHr2F0zPlKe'
APP_ID = 66666
token = 'GNujomvS8KxSAQZiuQmw'


API_KEY и APP_ID указаны на странице https://www.donationalerts.com/application/clients после регистрации приложения.
Токен: настройки аккаунта - Секретный токен - показать.
Или в разделе "оповещения" - показать ссылку для встраивания, после знака равно. Они идентичны.

С ними невозможно накосячить, так как я их копирую, а не вбиваю вручную.
Токен актуальный, т.к. донаты приходят и отображаются в ОБС с текущим токеном в ссылке виджета.

По тому же токену открывается виджет в браузере с донатами по ссылке
https://www.donationalerts.com/widget/lastdonations?alert_type=1,4,13,15,11,16,14,2,3,5,12&limit=50&token=GNujomvS8KxSAQZiuQmw


Вот и не понимаю, откуда ошибка о неверном токене...
Может есть ещё какой-то токен?

Единственное - не смог получить refresh_token со страницы https://www.donationalerts.com/oauth/token (Страница не найдена)

Есть ли способ получить данные о донатах не через API а через ссылку
https://www.donationalerts.com/widget/lastdonations?alert_type=1,4,13,15,11,16,14,2,3,5,12&limit=50&token=GNujomvS8KxSAQZiuQmw?
гет запросы не работают, данные подгружаются динамически через джава скрипт...

Сам код

import requests
import webbrowser
from urllib.parse import urlencode

API_KEY = '9qqLIoNFGEctIaFWfPqWwDBOtVQ6sIHr2F0zPlKe'
APP_ID = 66666
token = 'GNujomvS8KxSAQZiuQmw'
REDIRECT_URI = 'http://127.0.0.1:49803/login'
SCOPE = 'oauth-user-show oauth-donation-index'

data = {'client_id': APP_ID, 'redirect_uri': REDIRECT_URI, 'response_type': 'code', 'scope': SCOPE}
url = 'https://www.donationalerts.com/oauth/authorize?' + urlencode(data)
webbrowser.open(url)

code = input('code: ')

data = {'grant_type':'authorization_code', 'client_id':APP_ID, 'client_secret': API_KEY, 'redirect_uri': REDIRECT_URI, 'code': code}
r = requests.post('https://www.donationalerts.com/oauth/token', data=data).json()

access_token = r[token]
refresh_token = r['refresh_token']

headers = {'Authorization': 'Bearer {}'.format(access_token)} 
response = requests.get('https://www.donationalerts.com/api/v1/alerts/donations', headers=headers) 
r = response.json() 
print(r)
  • Вопрос задан
  • 223 просмотра
Решения вопроса 1
@karmoed Автор вопроса
Проблема решилась сама по себе. Ничего в коде не менял. Просто на следующий день с первого запуска все заработало
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы