【发布时间】:2017-04-14 01:34:15
【问题描述】:
我在 Salesforce 中使用 Google OAuth 时收到 400 错误请求。以下错误与无效的 grant_type 有关,但如果您查看“使用刷新令牌”下的文档,您会发现它是正确的。
https://developers.google.com/identity/protocols/OAuth2WebServer
错误:
{
"error": "unsupported_grant_type",
"error_description": "Invalid grant_type: "
}
我正在尝试将 refresh_token 交换为访问令牌,并且可以使用 CURL 成功完成此操作,代码如下。
curl \
-d refresh_token=REFRESH_TOKEN \
-d client_id=CLIENT_ID \
-d client_secret=CLIENT_SECRET \
-d grant_type=refresh_token https://www.googleapis.com/oauth2/v4/token
我在 Salesforce 中使用的代码:
Http http = new Http();
HttpRequest req = new HttpRequest();
req.setHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
req.setHeader('Content-Length', '0');
req.setHeader('client_id', 'CLIENT_ID');
req.setHeader('client_secret', 'CLIENT_SECRET');
req.setHeader('refresh_token', 'REFRESH_TOKEN');
req.setHeader('grant_type', 'refresh_token');
req.setEndpoint('https://www.googleapis.com/oauth2/v4/token');
req.setMethod('POST');
return http.send(req);
【问题讨论】:
标签: http oauth oauth-2.0 salesforce google-oauth