def create_credentials(token, account_id):
"""
Get client credentials, given a client token and an account_id.
Reference:
https://docs.brightcove.com/en/video-cloud/oauth-api/guides/get-client-credentials.html
"""
headers = {'Authorization': 'BC_TOKEN {}'.format(token)}
data = {
"type": "credential",
"maximum_scope": [{
"identity": {
"type": "video-cloud-account",
"account-id": int(account_id),
},
"operations": [
"video-cloud/video/all",
"video-cloud/ingest-profiles/profile/read",
"video-cloud/ingest-profiles/account/read",
"video-cloud/ingest-profiles/profile/write",
"video-cloud/ingest-profiles/account/write",
],
}],
"name": "Open edX Video XBlock"
}
url = 'https://oauth.brightcove.com/v4/client_credentials'
response = requests.post(url, json=data, headers=headers)
response_data = response.json()
# New resource must have been created.
if response.status_code == httplib.CREATED and response_data:
client_secret = response_data.get('client_secret')
client_id = response_data.get('client_id')
error_message = ''
else:
# For dev purposes, response_data.get('error_description') may also be considered.
error_message = "Authentication to Brightcove API failed: no client credentials have been retrieved.\n" \
"Please ensure you have provided an appropriate BC token, using Video API Token field."
raise BrightcoveApiClientError(error_message)
return client_secret, client_id, error_message
评论列表
文章目录