我根据此文档使用OAuth 2.0
进行授权:(https://developers.vendhq.com/documentation/oauth.html#oauth)并出现此错误:
"错误":" invalid_request"," error_description":"请求缺少必需参数,包含无效参数值,包括参数不止一次,否则会出现格式错误。检查\" grant_type \" 。参数"
请求
方法:发布
Content-Type: application/x-www-form-urlencoded
URL : https://{domain_prefix}.vendhq.com/api/1.0/token
参数:
code = {code}
client_id = {app_id}
client_secret = {app_secret}
grant_type = authorization_code
redirect_uri = {redirect_uri}
答案 0 :(得分:9)
根据RFC6749, section 4.1.3,POST请求的编码正文应该看起来像code={code}&client_id={app_id}&client_secret={app_secret}&grant_type=authorization_code&redirect_uri={redirect_uri}
。
示例:
grant_type = authorization_code&安培;代码= SplxlOBeZQQYbYS6WxSbIA&安培; REDIRECT_URI = HTTPS%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb&安培; CLIENT_ID = CLIENT_ID_1234&安培; client_secret = CLIENT_SECRET
不要忘记对重定向Uri进行编码:http://foo.bar/
=> http%3A%2F%2Ffoo.bar%2F
关于身份验证错误,可能是因为授权服务器在发布请求中不支持客户端密钥(或者您的客户端不允许使用它)。
然后尝试使用基本身份验证方案添加Authorization标头。
此标头的值为Basic {ENCODED_AUTHENTICATION}
,{ENCODED_AUTHENTICATION} =base64(client_id + ':' + client_secret)
使用此标头,必须删除帖子请求中的client_id
和client_secret
。您的请求参数变为code={code}&grant_type=authorization_code&redirect_uri={redirect_uri}
。
答案 1 :(得分:4)
您需要检查您尝试将POST发送到的网址。您尝试联系的服务不存在或当前不可用。