Patrzę na korzystanie z interfejsu API, bardziej konkretnie API Egnyte.

Z ich dokumentacji, muszę najpierw uzyskać żeton OAuth2, który udało mi się zostać pomyślnie.

Oto ich dokumentacja:

Nie jestem jednak pewien, co robić później. Próbuję użyć interfejsu API zarządzania użytkownikami, które mam zadzwonić do:

HTTPS: // {domena Egnyte} .genyte.com / PUBAPI / V2 / użytkownicy

Jednak jak mogę używać swojego tokena na żądanies.Get wezwanie do ich interfejsu API? Poniżej znajduje się mój kod Pythona, używam modułu żądań (http: //docs.Python- prośby.org/pl/latest/):

import requests

api_key = 'MY_API_KEY'
username = 'myUserName'
password = 'myPassword'

payload = {
    'grant_type': 'password',
    'client_id': api_key,
     'username': username,
    'password': password
}

token = requests.post("https://{Egnyte Domain}.egnyte.com/puboauth/token", params = payload)

print r.text

Otrzymuję odpowiedź:

{"access_token":"*MYToken","token_type":"bearer","expires_in":-1}

Dzięki!

1
popopanda 13 sierpień 2014, 22:16

2 odpowiedzi

Najlepsza odpowiedź

Ach, ktoś mi pokazał.

Musiałem wykonywać drobne korekty skryptu:

r = requests.post("https://{Egnyte Domain}.egnyte.com/puboauth/token", params=payload)
token = r.json()['access_token']

users = requests.get(url, headers={'Authorization': 'Bearer %s' % token})
1
popopanda 13 sierpień 2014, 23:26

Musisz użyć tokena w nagłówku autoryzacji żądań. Najlepszą rzeczą byłoby stworzenie trwałego połączenia.

r = requests.post("https://{Egnyte Domain}.egnyte.com/puboauth/token", params=payload)
if r.ok:
    access_token = r.json()['access_token']

session = requests.Session()
session.headers['Authorization'] = "Bearer %s" % access_token
users = session.get('https://{Egnyte Domain}.egnyte.com/pubapi/v2/users')

LUB

headers = {"Authorization":"Bearer %s" % access_token}
requests.get('https://{Egnyte Domain}.egnyte.com/pubapi/v2/users', headers=headers)
0
user6037143 12 sierpień 2016, 20:06