在python中没有本地浏览器的Google AnalyticsAPI访问权限

j0n*_*nes 10 python google-analytics-api oauth-2.0

我想使用Python查询Google AnalyticsAPI以定期从我的Google Analytics帐户下载数据并将数据存储在本地数据库中.我基本上遵循基本教程中给出的步骤.我在此过程中使用了用于PythonGoogle客户端API库.

到目前为止,当我在我的本地开发机器(Mac)上运行它时,我的脚本运行正常.当我启动脚本时,我的浏览器会打开,系统会提示我从应用程序授予对我的Google Analytics数据的访问权限.之后我可以根据需要随时运行脚本并访问我的数据.

在我的服务器(Ubuntu,只有终端可用)上,w3m浏览器打开,但我无法从那里访问我的Google帐户.我只能退出w3m并杀死该程序Ctrl-C.有一个错误消息,如:

您的浏览器已经打开访问:

https://accounts.google.com/o/oauth2/auth?scope=some_long_url&access_type=offline

如果您的浏览器位于其他计算机上,请退出并使用命令行参数重新运行此应用程序

--noauth_local_webserver

但是,当我使用参数运行我的脚本时--noauth_local_webserver,我得到相同的结果 - w3m打开,我无法进行身份验证.

我怎样才能--noauth_local_webserver上班?我有另一种方法在同一台机器上没有本地浏览器进行身份验证吗?

Roc*_*key 7

当你使用时FLAGS = gflags.FLAGS,你实际上需要传递命令行参数FLAGS(这可能也可能没有让我绊倒:)).请参阅此处了解以分析为中心的示例,了解如何执行此操作(以下代码,因为链接会在一段时间后消失).一般的想法是将argv参数传递给FLAGS变量,然后变量可供其他模块使用.

# From samples/analytics/sample_utils.py in the google-api-python-client source

def process_flags(argv):
  """Uses the command-line flags to set the logging level.

  Args:
    argv: List of command line arguments passed to the python script.
  """

  # Let the gflags module process the command-line arguments.
  try:
    argv = FLAGS(argv)
  except gflags.FlagsError, e:
    print '%s\nUsage: %s ARGS\n%s' % (e, argv[0], FLAGS)
    sys.exit(1)

  # Set the logging according to the command-line flag.
  logging.getLogger().setLevel(getattr(logging, FLAGS.logging_level))
Run Code Online (Sandbox Code Playgroud)

而且,事实证明我们并不孤单!您可以跟踪此错误以查看何时添加文档.