【发布时间】: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 小时(或类似的时间)后接受您自己的答案并获得声誉积分。选择文本后,使用编辑框左上方的
{}工具为其提供正确的“代码”格式。很高兴您找到了解决方案。祝你好运。
标签: curl google-fusion-tables access-token