刷新谷歌访问令牌时未授权_客户端

Posted

技术标签:

【中文标题】刷新谷歌访问令牌时未授权_客户端【英文标题】:unauthorized_Client while refreshing google access token 【发布时间】:2015-08-01 19:58:03 【问题描述】:

我想使用 curl 将 csv 文件上传到融合表。我使用开发者控制台创建了客户端 ID 和密码。然后我使用谷歌游乐场链接生成访问令牌。

使用生成的访问令牌,我可以成功地从 csv 文件导入融合表中的数据。

现在,问题是访问令牌在一段时间后过期,我必须使用刷新令牌获取新的访问令牌。我也想使用 curl 来执行此操作,但是在刷新访问令牌时出现“unauthorized_client”错误。

以下是我使用的命令。

在融合表中上传数据

curl -s -S --data-binary "INPUT_CSV_FILE" -H "授权:Bearer ACCESS_TOKEN_FROM_PLAYGROUNDLINK " -H "Content-Type: application/octet-stream" "https://www.googleapis.com/upload/fusiontables/v1/tables/FUSION_TABLE_ID/import"

刷新令牌

curl https://www.googleapis.com/oauth2/v3/token -d "grant_type=refresh_token&refresh_token=REFRESH_TOKEN(from playground)&client_id=CLIENT_ID&client_secret=CLIENT_SECRET" -X POST

【问题讨论】:

基于“未经授权的客户端”消息,我会尝试将-A "Mozilla" 添加到您的命令行中,在-d .. 之前,祝您好运。 谢天谢地,我已经找到了问题的解决方案。我在 Google Playground 中生成身份验证代码,但它没有使用我生成的客户端 ID。然后我用自己的http请求生成了验证码,如下accounts.google.com/o/oauth2/auth? redirect_uri=REDIRECT_URL& response_type=code& client_id=CLIENT_ID& scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Ffusiontables&approval_prompt=force& access_type=offline 并使用身份验证代码生成访问令牌并且它有效。希望这对其他人也有帮助。感谢#shellter 的帮助! 在下面发布您的解决方案作为答案。然后您可以在 48 小时(或类似的时间)后接受您自己的答案并获得声誉积分。选择文本后,使用编辑框左上方的 工具为其提供正确的“代码”格式。很高兴您找到了解决方案。祝你好运。 【参考方案1】:

我使用自己的 http 请求生成了如下身份验证代码 accounts.google.com/o/oauth2/auth? redirect_uri=REDIRECT_URL& response_type=code& client_id=CLIENT_ID& scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Ffusiontables&approval_prompt=force& access_type=offline 并使用身份验证代码生成访问令牌并成功了。 p>

【讨论】:

以上是关于刷新谷歌访问令牌时未授权_客户端的主要内容,如果未能解决你的问题,请参考以下文章

使用从客户端收到的谷歌授权码在服务器端 javascript (nodejs) 上获取访问令牌

Spring Security OAuth 2 隐式授权 - 不支持刷新令牌

无法获取 google play 授权的刷新令牌

Spotipy 使用授权代码流刷新令牌

何时将刷新令牌传递给 API

为什么访问令牌会过期?