新手试图找出如何让Node.js应用程序进行身份验证和查询Google BigQuery,试图适应this CodeLab tutorial from Java . 我可能会缺少哪一步?
首先,我使用我的clientid创建这个Oauth2 URL:
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
这成功地传到谷歌,提示
第三方服务请求访问您的Google帐户的权限 .
同意产生第二个提示:
Nodejs_Test正在请求以下权限:在Google BigQuery中查看和管理您的数据
同意这一点,调用回调URL,参数为 accessToken
.
我认为以下网址应列出我的BigQuery项目/数据集中的表格:
但是使用或不使用accessToken进行调用会返回以下消息:“需要登录” .
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Login Required",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Login Required"
}
}
我知道你不能重复代码,因为权限,过期的令牌等等 . 但我想知道我可能在概念上缺少哪一步 .
2 回答
您是否尝试将accesstoken作为授权标头而不是url参数发送?
如在
仅供参考 - 看起来您最初在URL中使用了参数
accessToken
. 它应该由access_token
代替,看起来它工作正常 . 当然,Jordan 's suggestion of using a Header is better if you'能够做到这一点 - 它不太可能登录访问日志,代理服务器日志等 .