Существует ли сценарий python для создания токена доступа Blizzard API? - PullRequest
2 голосов
/ 13 апреля 2020

Я довольно новичок в кодировании, но я пытаюсь работать с ботом, который извлекает некоторые данные из API Blizzard. У меня бот работает нормально, но мне приходится go входить и вручную менять URL для данных json каждый раз, когда меняется токен доступа. Я понимаю, что токен меняется каждые 24 часа, но я не могу представить, что разработчики должны постоянно go обращаться к консоли и каждый день получать новый URL с обновленным токеном доступа. Я просматривал документацию OAuth от Blizzard и нашел следующий код, который кто-то опубликовал для python:

import requests
import json
from requests.auth import HTTPBasicAuth


def create_access_token(client_id, client_secret, region = 'us'):
    url = "https://%s.battle.net/oauth/token" % region
    body = {"grant_type": 'client_credentials'}
    auth = HTTPBasicAuth(client_id, client_secret)
    response = requests.post(url, data=body, auth=auth)
    return response.json()
create_access_token()

, но когда я передаю ему свой идентификатор клиента и мой секретный ключ клиента, я не получить никакой информации. Любая помощь будет потрясающей. Спасибо.

1 Ответ

0 голосов
/ 10 мая 2020

Вы можете использовать интерактивный CURL для Python Запросы ansible, например this , чтобы получить правильный формат запросов из примера CURL документации потока учетных данных клиента :

завиток

curl -u {client_id}:{client_secret} -d grant_type=client_credentials https://us.battle.net/oauth/token

python

import requests

def create_access_token(client_id, client_secret, region = 'us'):
    data = { 'grant_type': 'client_credentials' }
    response = requests.post('https://%s.battle.net/oauth/token' % region, data=data, auth=(client_id, client_secret))
    return response.json()

response = create_access_token(YOUR_CLIENT_ID, YOUR_CLIENT_SECRET)
print(response)
...