我是Python编程的新手,我不知道以下所需的所有库。
我想用Python来测试一些HTTP API。主要是我想使用OAuth并进行一些JSON调用。有问题的API可以在以下网址找到:https://developers.trustpilot.com/authentication和生成产品评论链接(我只能使用一个链接)
我想验证自己,然后一步生成产品评论链接。到目前为止,我一直在使用Advanced REST客户端(ARC)单独进行这些调用。如果你觉得它更容易,我也可以使用.arc文件。
这个想法将一次性连续进行这些调用。所以这将是一条直线:
1)进行身份验证呼叫。
HTTP方法如下所示: https://api.trustpilot.com/v1/oauth/oauth-business-users-for-applications/accesstoken 方法发布:
标题 授权:基本Base64encode(API密钥:秘密) 内容类型:application / x-www-form-urlencoded
有效载荷: grant_type =密码&安培; username=user@mail.com&密码= SomePass
基本上将这一位翻译成Python。
1.a)为通话添加标题
标题授权:base64encode hash内容类型:application / x-www-form-urlencoded
1.b)向呼叫添加有效载荷
Payload:grant_type = password& username
4)从步骤1)中的呼叫接收令牌(结果是格式)
“访问令牌”:Auth_token
5)获取令牌并将其用于创建产品评论。
5.a)在标题
中添加标记标题:授权:Bearer Auth_token
6.a)将JSON有效负载添加到步骤5中的调用中。
这是我到目前为止的代码:
Import requests
header = {'Authorization: Basic NnNrQUprTWRHTU5VSXJGYXBVRGxack1oT01oTUFRZHI6QTFvOGJjRUNDdUxBTmVqUQ==}','Content-Type: application/x-www-form-urlencoded'}
payload = {'grant_type=password&username=email@address.com&password=SomePassword'}
r = requests.post('https://api.trustpilot.com/v1/oauth/oauth-business-users-for-applications/accesstoken', headers=header, params=payload )
理想情况下,我想创建requests.post(url,header,payload),然后返回服务器以JSON格式回答的内容。我认为print r.text会做最后一部分。
所以这是我写的代码(现在有效):
import requests
import getpass
import json
from requests.auth import HTTPBasicAuth
header = {'grant_type':'password' , 'username':'mail@maildomain.com', 'password':'YourPassword'}
username= "YOURAPIKEY" #APIKey
password= "YOURSECRET" #Secret
res = requests.post(
'URL/v1/oauth/oauth-business-users-for-applications/accesstoken',
auth=HTTPBasicAuth(username, password), # basic authentication
data=header)
#print(res.content) #See content of the call result.
data = res.json() # get response as parsed json (will return a dict)
auth_token = data.get('access_token')
答案 0 :(得分:2)
requests
无需您的任何工作即可完成您的所有要求。
请参阅authentication,parameters,json output,json input
的文档进行身份验证呼叫。
import requests
import getpass
from requests.auth import HTTPBasicAuth
username = raw_input('Username: ')
password = getpass.getpass('Password: ')
res = requests.post(
'https://api.trustpilot.com/v1/oauth/oauth-business-users-for-applications/accesstoken',
auth=HTTPBasicAuth(username, password), # basic authentication
params={ # url parameters
'grant_type': 'password',
'username': 'email@address.com',
'password': 'SomePassword'
})
从步骤1中的呼叫中接收令牌(结果为格式)
# res = requests.post.....
data = res.json() # get response as parsed json (will return a dict)
auth_token = data.get('access token')
获取令牌并将其用于创建产品评论。
request.post(
'.../product_review',
headers={
'Authorization': 'Bearer ' + auth_token
},
json={'my': 'payload'}) # send data as json