新手试图找出如何让Node.js应用程序验证和查询Google BigQuery,尝试调整this CodeLab tutorial from Java。我可能会缺少哪一步?
首先,我使用我的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
这成功传到谷歌,提示
第三方服务请求访问您的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"
}
}
我知道你不能重复代码,因为权限,过期的令牌等等。但我想知道我可能在概念上缺少哪一步。
答案 0 :(得分:3)
您是否尝试将accesstoken作为授权标头而不是url参数发送?
,如
https://www.googleapis.com/bigquery/v2/projects/1047877053699/datasets/visits
Authorization: OAuth Your-access-token-here-not-urlencoded
答案 1 :(得分:1)
仅供参考 - 看起来您最初在URL中使用了参数accessToken
。它应该由access_token
代替,看起来它工作正常。当然,如果你能够做到这一点,乔丹建议使用Header会更好 - 它更安全,因为它不太可能登录访问日志,代理服务器日志等。