1

我正在研究如何使用 API,更具体地说是 Egnyte 的 API。

从他们的文档中,我必须首先获得一个我能够成功获得的 oauth2 令牌。

以下是他们的文档:

但是,我不确定之后该怎么做。我正在尝试使用他们的用户管理 API,我想调用它:

https://{Egnyte 域}.egnyte.com/pubapi/v2/users

但是,我如何将他们的令牌用于 requests.get 调用他们的 api?下面是我的 python 代码,我正在使用请求模块(http://docs.python-requests.org/en/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

我得到的回应是:

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

谢谢!

4

2 回答 2

1

啊,有人给我看了。

不得不对脚本做一些小的调整:

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})
于 2014-08-13T23:26:33.337 回答
0

您需要在请求的授权标头中使用令牌。最好的办法是创建一个持久连接。

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')

或者

headers = {"Authorization":"Bearer %s" % access_token}
requests.get('https://{Egnyte Domain}.egnyte.com/pubapi/v2/users', headers=headers)
于 2016-08-12T20:06:10.337 回答