我有客户端ID和客户端密码,并且正在尝试按照Sitescout's api docs生成身份验证令牌。我正在使用python模块请求,并且我收到了400状态代码,又称格式错误的请求,但我似乎无法弄清楚原因。
我的代码:
import requests
url = "https://api.sitescout.com/oauth/token"
headers = {
"Host": "api.sitescout.com",
"Authorization": "Basic YmVldGhvdmVuOmxldG1laW4=",
"Content-Type": "application/x-www-form-urlencoded",
"Accept": "application/json",
"Content-Length": "41"
}
# Do the HTTP request
response = requests.post(url, headers=headers)
response.status_code
这是文档中提供的伪造的base64授权标头,因此这个代码片段会返回401错误,也就是未经授权(我当然有自己的身份验证)。
有谁能告诉我这有什么问题?
答案 0 :(得分:1)
已经解决了。我没有放grant_type=client_credentials
,当添加时,返回200。
文档说“可选地,您可以添加表单参数范围以指示您请求访问的范围;范围值必须是空格分隔的(例如,STATS AUDIENCES)。”但是“& scope = STATS”参数是可选的,而不是所有参数。这个例子使我感到困惑。
现在我的代码读取
...
params = { "grant_type" : "client_credentials" }
response = requests.post(url, headers=headers, params=params)
...
有效。