如何使用Google Oauth为BigQuery授权安装的应用程序?

时间:2014-03-30 16:45:52

标签: oauth google-oauth google-bigquery google-cloud-platform

我已按照此处的所有说明操作:https://developers.google.com/bigquery/bigquery-api-quickstart

但是无法让auhtorization过程发挥作用。即使我指定了urn:ietf:wg:oauth:2.0:oob作为我的回调,生成的URL尝试localhost。当我运行我的脚本时,我得到了以下输出,网页打开但我从未被提示输入我的代码。我在这做错了什么?我正在使用API​​快速入门页面底部的完整示例代码。

 % python bqexample.py
WARNING:root:This function, oauth2client.tools.run(), and the use of the gflags library are deprecated and will be removed in a future version of the library.
Your browser has been opened to visit:

    https://accounts.google.com/o/oauth2/auth?scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fbigquery&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2F&response_type=code&client_id=(REMOVED).apps.googleusercontent.com&access_type=offline

If your browser is on a different machine then exit and re-run
this application with the command-line parameter

  --noauth_local_webserver

1 个答案:

答案 0 :(得分:3)

看起来oauth2client改为使用argparse而不是gflags(即改变了注册标志的机制)。尝试更改当前显示的代码

credentials = run(flow, STORAGE)

import argparse
from oauth2client import tools
argparser = argparse.ArgumentParser(
    description=__doc__,
    formatter_class=argparse.RawDescriptionHelpFormatter,
    parents=[tools.argparser])
flags = argparser.parse_args(sys.argv[1:])
credentials = tools.run_flow(flow, storage, flags)

然后,你可以运行

python bqexample.py --noauth_local_webserver

它将为您提供剪切和粘贴的URL,而不是尝试启动Web服务器以自动执行该过程。