FusionTables Insert适用于OAuth2 Playground,但不适用于其他系统中的HTTPS Post

时间:2013-08-22 20:49:36

标签: google-fusion-tables google-oauth oauth2-playground

你好,互联网的人,

我们可以成功使用Google Oauth 2.0 Playground将简单的sql POST插入到FusionTable中,但是当尝试相同的基本HTTPS POST操作时(来自后端系统,另一个浏览器会话,Postman chrome工具,投掷) .it等等,我们总是得到403错误:

 "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.",

我很困惑为什么在从其他系统(OAuth游乐场除外)做一个HTTPS帖子时会返回错误?...当我提供一个活动的访问令牌(剪切粘贴的访问令牌)时来自OAuth游乐场)。

OAuth 2.0 Playground中成功运行良好的Request块位于下方(但Access令牌当然已过期):

 POST /fusiontables/v1/query?sql=INSERT INTO 1CqwRGEEn4L0gN66JwGvCR5yOI8miNMVijcp4XlE (Name, Age) VALUES ('Forrest', 57) HTTP/1.1
 Host: www.googleapis.com
 Content-type: application/json
 Authorization: Bearer ya29.AHES6ZRr9CkHptvLaYlba_u6wceIh29urI8FjFp8xMP08AcBm2qpHg

这是由几个不同的基于REST的工具生成的直接URL,我试图模拟用于对FusionTables执行POST sql插入的HTTPS请求(再次:即使使用活动的Access令牌也会生成403错误):

 https://www.googleapis.com/fusiontables/v1/query?sql=INSERT%20INTO%201CqwRGEEn4L0gN66JwGvCR5yOI8miNMVijcp4XlE%20(Name,%20Age)%20VALUES%20('Jim',%2057)=&Content-length:=0&Content-type:%20=application/json&Authorization:=%20Bearer%20ya29.AHES6ZRr9CkHptvLaYlba_u6wceIh29urI8FjFp8xMP08AcBm2qpHg

其他一些说明: - 在我的Google API控制台中,我使用的是“Web应用程序的客户端ID”。

- 我使用Api控制台电子邮件地址更新了FusionTable属性,以允许上述sql中使用的fusiont表上的编辑功能(1CqwRGEEn4L0gN66JwGvCR5yOI8miNMVijcp4XlE)Odi for Service帐户建议将编辑功能的电子邮件添加到FusionTable属性关于FusionTables的另一篇相关文章。)

任何帮助解释为什么HTTPS Post在OAuth游乐场中为sql插入到FusionTables工作,但在其他任何地方都不会受到赞赏...肯定会有一些我不知道的东西,因为据说OAuth游乐场是帮助的阐明OAuth如何在详细级别上工作,以便我们可以处理其他系统,而这些系统不一定具有已开发的OAuth库。

根据建议的答案更新8/23 ...这是一个在POSTMAN中有效的URL语法,同时使用OAuth API密钥和使用OAuth游乐场获取的活动访问令牌(访问令牌当然是伪造的/过期)。

  https://www.googleapis.com/fusiontables/v1/query?sql=INSERT%20INTO%201CqwRGEEn4L0gN66JwGvCR5yOI8miNMVijcp4XlE%20(Name,%20Age)%20VALUES%20('Bob',%2031)=&Content-length:=0&Content-type:%20=application/json&key={OAuth API key}&access_token=ya29.AHES6ZST_c2CjdXeIyG8LwkprQMGGfoW45sonX0d1H51234

1 个答案:

答案 0 :(得分:1)

尝试将您的API密钥添加到POST。即使该消息涉及身份验证,我也非常确定它不是OAuth身份验证,但您的API使用情况需要进行验证。