Brightcove API - как получить токен доступа с помощью запросов? - PullRequest
0 голосов
/ 17 апреля 2020

Документация по API Brightcove скажем:

Авторизация: Basi c {client_id}: {client_secret}

Весь {client_id}: {client_secret } строка должна быть в кодировке Base64 (curl будет автоматически кодировать в Base64 строку, если вы передадите ее как --user учетные данные; в других языках вам придется самостоятельно обрабатывать кодировку Base64).

Значит ли это, что я кодирую идентификатор и секрет по отдельности, или все это? Я все еще не уверен, что я делаю неправильно. Вот мой код на данный момент:

id_key = b64encode('myid12345qwerty'.encode()).decode("utf-8")
secret_key = b64encode('mysecret12345qwerty67890'.encode()).decode("utf-8")
creds = '{'+id_key+':'+secret_key+'}'
headers = {'Content-Type': 'application/x-www-form-urlencoded', 'Authorization': 'Basic ' + creds}

r = requests.post('https://oauth.brightcove.com/v4/access_token?grant_type=client_credentials', headers = headers)
print(r.status_code)
print(r.text)

Это дает ошибку, которая говорит, что он не получает параметр client_id.

{"error":"invalid_client","error_description":"The "client_id" parameter is missing, does not name a client registration that is applicable for the requested call, or is not properly authenticated."}

Спасибо за любые указатели здесь.

1 Ответ

0 голосов
/ 17 апреля 2020

Это будет key:secret base 64, закодированная как одна строка, но вы можете использовать встроенную поддержку запроса для basi c auth и пропустить этот шаг.

id_key = 'myid12345qwerty'
secret_key = 'mysecret12345qwerty67890'
r = requests.post(
  'https://oauth.brightcove.com/v4/access_token?grant_type=client_credentials',
  auth=(id_key, secret_key)
)
...