再次问候善良和仁慈的互联网人。
我正在阅读 Kathryn Hurley 关于将 OAuth 与 Fusion Tables 结合使用的文章(链接在这里:OAuthandFusionTables),并且还在研究 Odi 对我之前关于这个主题的问题的回答(链接在这里:我以前的问题),以及已阅读并重新阅读了 google-api-javascript-client 库参考(此处链接:gapi 参考),但我仍然对 Fusion Tables、oAuth2.0 和 google-api-javascript-client 的明显行为感到非常困惑Google 提供的 Javascript API 示例中显示的库(此处链接:Google Example Javascript gapi with Fusion Tables)。
对于 Google Javascript API 示例:
A.) 为什么使用 gapi-client javascript 库进行表插入和更新的 Fusion Table oAuth 请求实际上不使用 sql 请求字符串中返回的 oAuth 令牌?
...或者换一种说法:B.) 当使用 google-api-javascript-client 库时,访问令牌有什么实际好处?...根据 Kathry Hurley 为“应用程序 2 -创建一个允许用户访问自己的 Fusion Table 数据的应用程序”?
...或者换一种说法:C.)浏览器会话和 Google Fusion Table 服务器之间的 https ssl 连接是否实际上是“授权”并允许访问?...这是某种类型的 ssl 连接(其中我真的不明白)......根本不是访问令牌允许访问,并且令牌只是一个返回的“标志”,表示使用gapi客户端时会话良好/连接/正常?
或者 D.) 我只是产生了幻觉吗?......并且没有正确看到 Javascript API 示例和/或 gapi 客户端库的内容?
以下是更多细节:
首先尝试 Javascript API 示例(此处再次链接:Google Example Javascript gapi with Fusion Tables)...这真的很好,对我来说理解起来很困难。
第二次尝试我对这个 API 示例的“hack”,它会引发一堆警报(这样我就可以跟踪正在发生的事情),并将 SQL 字符串写入屏幕:(链接在这里:我的示例 hack Google gapi 示例)
从我对示例的修改中可以看出,对于“创建表”和“插入数据”,访问 authToken 不是提交给 Fusion Tables 的 sql 字符串的一部分:示例:
{"b":{"path":"/fusiontables/v1/query","method":"POST","params":{},"headers":{"Content-Type":"application/x- www-form-urlencoded","Content-Length":105},"body":"sql=INSERT%20INTO%201zkJhx0XdI3SsguI2Pided-m28mNSzI0MsMKNhY0%20(Name%2C%20Age)%20VALUES%20('test'%2C% 204)"}}
上述字符串中没有 auth 访问令牌。
但是根据 Kathry Hurley 的文章(关于 OAuth 2.0 和 Fusion Tables),以下是步骤,特别注意第 7 步:
0 注册您的应用程序
1 位用户访问您的 Web 应用程序
2 您的网络应用程序将用户重定向到 Google 授权页面
3 用户授予您的 Web 应用程序访问权限
4 Google 将用户重定向回您的 Web 应用程序并返回授权码
5 您的应用程序向 Google 请求访问令牌和刷新令牌 6 Google 返回访问令牌、刷新令牌和访问令牌到期
7 访问令牌可用于对Fusion Tables 的所有后续请求,直到令牌过期
8 当访问令牌过期时,刷新令牌用于请求新的访问令牌
上面的第 7 步似乎规定访问令牌用于后续请求。...并且提供的示例代码显示了包含的访问令牌:
urllib.urlencode({
'sql': 'SHOW TABLES',
'access_token': access_token
}),
Soooo ...我对 Google 示例中 gapi.client 库的明显行为的差异感到困惑(在执行插入或更新时,它显然没有在 sql 请求字符串上提交访问令牌)和写在访问 Fusion Tables 时应该如何提交访问身份验证令牌。
也许有些人可以提供一些启示?提前致谢