Как я могу получить oauth2 access_token с помощью pythonPython

Программы на Python
Ответить
Anonymous
 Как я могу получить oauth2 access_token с помощью python

Сообщение Anonymous »

Для проекта кто-то предоставил мне эти данные, которые я использовал в Postman в целях тестирования:

В Postman это работает отлично.

URL-адрес аутентификации: https://api.example.com/oauth/access_token

URL-адрес токена доступа: https://api.example.com/access_token

Идентификатор клиента: abcde

Секрет клиента: 12345

Имя токена: access_token

Тип предоставления: учетные данные клиента

Все, что мне нужно, это вернуть токен доступа.

Как только я получу токен доступа, я смогу продолжить.

Я уже попробовал несколько пакетов Python и некоторый собственный код, но почему-то эта, казалось бы, простая задача начинает вызывать настоящую головную боль.

Один пример, который я пробовал:

Код: Выделить всё

import httplib
import base64
import urllib
import json

def getAuthToken():
CLIENT_ID = "abcde"
CLIENT_SECRET = "12345"
TOKEN_URL = "https://api.example.com/oauth/access_token"

conn = httplib.HTTPSConnection("api.example.com")

url = "/oauth/access_token"

params = {
"grant_type": "client_credentials"
}

client = CLIENT_ID
client_secret = CLIENT_SECRET

authString = base64.encodestring('%s:%s' % (client, client_secret)).replace('\n', '')

requestUrl = url + "?" + urllib.urlencode(params)

headersMap = {
"Content-Type": "application/x-www-form-urlencoded",
"Authorization": "Basic " + authString
}

conn.request("POST", requestUrl, headers=headersMap)

response = conn.getresponse()

if response.status == 200:
data = response.read()
result = json.loads(data)

return result["access_token"]
< /code>

Тогда я получил это: < /p>

import requests
import requests.auth

CLIENT_ID = "abcde"
CLIENT_SECRET = "12345"
TOKEN_URL = "https://api.example.com/oauth/access_token"
REDIRECT_URI = "https://www.getpostman.com/oauth2/callback"

def get_token(code):
client_auth = requests.auth.HTTPBasicAuth(CLIENT_ID, CLIENT_SECRET)
post_data = {"grant_type": "client_credentials",
"code": code,
"redirect_uri": REDIRECT_URI}
response = requests.post(TOKEN_URL,
auth=client_auth,
data=post_data)
token_json = response.json()
return token_json["access_token"]
Если это сработает, что мне следует поместить в параметр кода

Я очень надеюсь кто-нибудь может мне помочь здесь.

Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/367 ... ing-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»