Для проекта кто-то дал мне эти данные, которые я использовал в Почтальон для целей тестирования:Как я могу получить oauth2 access_token с помощью Python
В Почтальон это работает отлично. URL
Auth: https://api.example.com/oauth/access_token
Токен доступа URL: https://api.example.com/access_token
клиент ID: ABCDE
клиента секрет: 12345
Токен Имя: access_token
Grant Тип: учетные данные клиента
Все, что мне нужно, чтобы вернуться это токен доступа.
Один я получил токен доступа, который я могу продолжить.
Я уже пробовал несколько пакетов Python и некоторый собственный код, но почему-то эта, казалось бы, простая задача начинает создавать настоящую головную боль.
Один Exemple я попробовал:
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"]
Тогда я получил это один:
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"]
Если это будет работать, что я должен положить в параметр code
Я действительно надеюсь, кто-то может помочь мне здесь.
Заранее спасибо.
Может вы, пожалуйста, объясните свой код немного? Кажется, я не могу заставить его работать. Заранее спасибо! – Rhyuk