【问题标题】:Google API client secrets error (Python)Google API 客户端机密错误 (Python)
【发布时间】:2012-12-01 06:55:36
【问题描述】:

我想从 Google 分析中检索数据。我在控制台中创建了一个服务帐户,并使用 Google 的 Python (hello_analytics_api_v3.py) 代码来访问数据。

我已将client_secrets.json 复制到我的文件夹中,但出现此错误:

*SystemExit: 
WARNING: Please configure OAuth 2.0
To make this sample run you will need to populate the client_secrets.json file
found at:*

我该怎么办?我正在使用 Python 2.7。

【问题讨论】:

  • 只是为了仔细检查,您是否将自己的信息添加到client_secrets.json,特别是client_idclient_secret
  • 另外,对于我们这些不熟悉的人(大多数人),您从哪里获得文件 hello_analytics_api_v3.py
  • 这个字符串末尾的 * 有点奇怪:“要运行这个示例,您需要填充在以下位置找到的 client_secrets.json 文件:*” 这应该是目录名称,其中它正在寻找 client_secrets.json 文件。 “*”不起作用。
  • 下载的client_secrets.json已经有详细信息了。
  • 我从 Google Code 获得了 hello_analytics_api_v3

标签: python google-app-engine google-api-python-client


【解决方案1】:

确保终端指向与您的client_secrets.json 文件相同的路径目录。

即在您用来调用脚本的控制台中键入pwd,输出应与存储client_secrets.json 的目录匹配。

【讨论】:

  • 我不小心将我的文件命名为“client_secret.json”(我错过了 s)。简单的事情会得到你。谢谢!
【解决方案2】:

如果您使用的是 Windows 系统,请按照以下步骤操作:

  1. 将您的文件 (client_secrets.json) 放在目录 (C:) 或 (D:) 中。
  2. 在您的 Python 文件中定义您的变量,如下所示: CLIENT_SECRETS_FILE = "\client_secrets.json"。 Python 将在根 C: 或 D: 中搜索 json 文件并找到它。

我在使用 Google API for youtube 时遇到了同样的问题,我就这样解决了。

【讨论】:

    【解决方案3】:

    https://developers.google.com/youtube/v3/guides/uploading_a_video 的示例代码中,对flow_from_clientsecrets() 的调用将CLIENT_SECRETS_FILE 作为相对路径传递。

    要修复它,请强制 CLIENT_SECRETS_FILE 参数为绝对路径:

    def get_authenticated_service(args):
      flow = flow_from_clientsecrets(
        os.path.abspath(os.path.join( 
          os.path.dirname(__file__),CLIENT_SECRETS_FILE)),
        scope=YOUTUBE_UPLOAD_SCOPE,
        message=MISSING_CLIENT_SECRETS_MESSAGE)
    

    【讨论】:

      【解决方案4】:

      我遇到了这个确切的问题,我删除了我的项目的凭据,并使用“OAuth 客户端 ID”选项创建了新的凭据。按照此页面的第一步 closley https://developers.google.com/analytics/devguides/config/mgmt/v3/quickstart/installed-py

      我还在google提供的示例代码中发现了语法错误 线条:

      print 'View (Profile): %s' % results.get('profileInfo').get('profileName')
      print 'Total Sessions: %s' % results.get('rows')[0][0]
      

      应阅读:

      print ('View (Profile): %s' % (results.get('profileInfo').get('profileName')))
      print ('Total Sessions: %s' % (results.get('rows')[0][0]))
      

      至少这为我解决了这个问题。另外,请确保 client_secrets.json 与您的 python 脚本位于同一目录中。

      【讨论】:

        【解决方案5】:

        我收到此错误是因为我在 client_id 和 client_secret 中仍然有方括号。它应该只是没有括号的字符串。

        【讨论】:

        • 谢谢!这也是我的问题!
        猜你喜欢
        • 2013-01-19
        • 2015-02-05
        • 2014-06-18
        • 2013-11-11
        • 2016-06-07
        • 1970-01-01
        • 2015-10-31
        • 2016-03-31
        • 1970-01-01
        相关资源
        最近更新 更多