【发布时间】:2019-08-17 04:30:08
【问题描述】:
我正在试验 google 的 REST api。在这里,我试图从 cURL 命令生成访问令牌,以便在进一步的 REST 请求中使用它。 但我遇到了以下错误。
我试图通过以下 cURL 命令获取访问令牌,但我得到以下错误响应。
curl \
--request POST \
--data "code=4/GQEg70zaxHAuRhhd6A1RB_6LIxwwBV8ak5xRP-nZIBTjuvt4g3fTWyU&client_id=954040553015-bphgid2596t65i91827omteq778cp7gj.apps.googleusercontent.com&client_secret=Sn3giYFFPMCNteKC--938xsP&redirect_uri=urn:ietf:wg:oauth:2.0:oob&grant_type=authorization_code" \
https://accounts.google.com/o/oauth2/token
回复:
{
"error": "invalid_grant",
"error_description": "Bad Request"
}
然后我编辑了如下命令,但它失败了。
curl -d client_id=954040553015-bphgid2596t65i91827omteq778cp7gj.apps.googleusercontent.com -d client_secret=Sn3giYFFPMCNteKC--938xsP -d grant_type=authorization_code -d redirect_uri=urn:ietf:wg:oauth:2.0:oob -d code=4/GQEg70zaxHAuRhhd6A1RB_6LIxwwBV8ak5xRP-nZIBTjuvt4g3fTWyU https://oauth2.googleapis.com/token
回复:
{
"error": "invalid_grant",
"error_description": "Bad Request"
}
因此,基于此链接https://gist.github.com/LindaLawton/cff75182aac5fa42930a09f58b63a309#file-googleauthenticationcurl-sh,我更改了 grant_type=client_credentials。但我又得到了错误响应。
{
"error": "unsupported_grant_type",
"error_description": "Invalid grant_type: client_credentials"
}
所以,请帮我解决这个错误。
【问题讨论】:
-
您从哪里获得
code参数的值?你确定你已经正确地转义了所有元字符吗?将-v添加到您的 curl 并检查发送的内容是否是您认为发送的内容。转到developers.google.com/oauthplayground 并逐步完成身份验证流程。将 Playground 发送的内容与您发送的内容进行比较。 -
我从链接中获取了代码,并从网页中复制了代码并添加到 curl 命令中。 accounts.google.com/o/oauth2/… 我在 curl 命令中添加了 -v,但没有帮助。
-
粘贴
curl -v的输出 -
您好,请在此处找到
curl -v登录drive.google.com/open?id=1qE0AUbX2yqNXz6GyQxYNT_OcS1RnQzXd
标签: android curl oauth-2.0 google-drive-api google-oauth