通过Node.js中的OAuth2对BigQuery REST API进行身份验证
问题描述:
新手试图弄清楚如何让Node.js应用程序对Google BigQuery进行身份验证和查询,尝试修改this CodeLab tutorial from Java。我可能会错过什么步骤?通过Node.js中的OAuth2对BigQuery REST API进行身份验证
首先,我创建一个使用我的clientid此的oauth2网址:
https://accounts.google.com/o/oauth2/auth?
client_id=1047877053699-den6kbs4v3f2bft6clonsirkj1pc7t6j.apps.googleusercontent.com
&scope=https://www.googleapis.com/auth/bigquery
&redirect_uri=http://localhost:3000/oauth2callback
&access_type=offline
&response_type=code
这成功地达到谷歌,它会提示
第三方服务请求访问您的谷歌帐户。
一致表示产生第二提示:
Nodejs_Test请求权限: 查看和谷歌的BigQuery
同意并用于管理您的数据,回调URL被称为,参数为accessToken
。
我认为以下网址应该列出我的BigQuery项目/数据集表:
但有或没有的accessToken调用返回下列消息“需要登录”。
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Login Required",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Login Required"
}
}
我知道你不能重复因为权限的代码,过期令牌等,但我不知道我的步骤可能会缺少概念。
答
您是否尝试将accesstoken作为授权标头而不是url参数发送?
在
https://www.googleapis.com/bigquery/v2/projects/1047877053699/datasets/visits
Authorization: OAuth Your-access-token-here-not-urlencoded
答
仅供参考 - 看起来像您最初使用的参数accessToken
在URL中。它应该改为access_token
,看起来好像很好。当然,如果你能够做到这一点,Jordan的使用标题的建议更好 - 它更安全,因为它不太可能登录访问日志,代理服务器日志等。
谢谢!得到它的工作。学习曲线是多步骤的,但是这提供了正确的关键字来锁定。 – prototype 2012-08-21 02:09:57