google-api-python-客户端不能使用开发人员密钥
google-api-python-client doesn't work with developer key
我无法使该脚本运行。我将 DEVELOPER_KEY 替换为我从 Google API 创建的 API 密钥。如果有人能帮助我,我将不胜感激。该脚本来自此页面:https://developers.google.com/youtube/v3/code_samples/python#search_by_keyword
#!/usr/bin/python
from apiclient.discovery import build
from apiclient.errors import HttpError
from oauth2client.tools import argparser
# Set DEVELOPER_KEY to the API key value from the APIs & auth > Registered apps
# tab of
# https://cloud.google.com/console
# Please ensure that you have enabled the YouTube Data API for your project.
DEVELOPER_KEY = "REPLACE_ME"
YOUTUBE_API_SERVICE_NAME = "youtube"
YOUTUBE_API_VERSION = "v3"
youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION, developerKey=DEVELOPER_KEY)
我收到以下错误消息。
Traceback (most recent call last):
File "hello.py", line 16, in <module>
youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION, developerKey=DEVELOPER_KEY)
File "/home/alican/.local/lib/python2.7/site-packages/oauth2client/_helpers.py", line 133, in positional_wrapper
return wrapped(*args, **kwargs)
File "/home/alican/.local/lib/python2.7/site-packages/googleapiclient/discovery.py", line 226, in build
credentials=credentials)
File "/home/alican/.local/lib/python2.7/site-packages/oauth2client/_helpers.py", line 133, in positional_wrapper
return wrapped(*args, **kwargs)
File "/home/alican/.local/lib/python2.7/site-packages/googleapiclient/discovery.py", line 358, in build_from_document
credentials = _auth.default_credentials()
File "/home/alican/.local/lib/python2.7/site-packages/googleapiclient/_auth.py", line 40, in default_credentials
return oauth2client.client.GoogleCredentials.get_application_default()
File "/home/alican/.local/lib/python2.7/site-packages/oauth2client/client.py", line 1264, in get_application_default
return GoogleCredentials._get_implicit_credentials()
File "/home/alican/.local/lib/python2.7/site-packages/oauth2client/client.py", line 1254, in _get_implicit_credentials
raise ApplicationDefaultCredentialsError(ADC_HELP_MSG)
oauth2client.client.ApplicationDefaultCredentialsError: The Application Default Credentials are not available. They are available if running in Google Compute Engine. Otherwise, the environment variable GOOGLE_APPLICATION_CREDENTIALS must be defined pointing to a file defining the credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information.
这是 google-api-python-client 1.6 版的问题。使用之前的版本(1.5.5)应该可以解决问题。
如果您想使用 google-api-python-client 1.6 版,请执行以下操作。
转到 https://console.developers.google.com/apis/credentials。 Select 创建凭据,选择服务帐户密钥,选择 App Engine 默认服务帐户,下载 JSON 文件并将其放入您的项目文件夹中。然后将它设置为环境变量GOOGLE_APPLICATION_CREDENTIALS
。
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "./google_application_credentials.json"
我无法使该脚本运行。我将 DEVELOPER_KEY 替换为我从 Google API 创建的 API 密钥。如果有人能帮助我,我将不胜感激。该脚本来自此页面:https://developers.google.com/youtube/v3/code_samples/python#search_by_keyword
#!/usr/bin/python
from apiclient.discovery import build
from apiclient.errors import HttpError
from oauth2client.tools import argparser
# Set DEVELOPER_KEY to the API key value from the APIs & auth > Registered apps
# tab of
# https://cloud.google.com/console
# Please ensure that you have enabled the YouTube Data API for your project.
DEVELOPER_KEY = "REPLACE_ME"
YOUTUBE_API_SERVICE_NAME = "youtube"
YOUTUBE_API_VERSION = "v3"
youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION, developerKey=DEVELOPER_KEY)
我收到以下错误消息。
Traceback (most recent call last):
File "hello.py", line 16, in <module>
youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION, developerKey=DEVELOPER_KEY)
File "/home/alican/.local/lib/python2.7/site-packages/oauth2client/_helpers.py", line 133, in positional_wrapper
return wrapped(*args, **kwargs)
File "/home/alican/.local/lib/python2.7/site-packages/googleapiclient/discovery.py", line 226, in build
credentials=credentials)
File "/home/alican/.local/lib/python2.7/site-packages/oauth2client/_helpers.py", line 133, in positional_wrapper
return wrapped(*args, **kwargs)
File "/home/alican/.local/lib/python2.7/site-packages/googleapiclient/discovery.py", line 358, in build_from_document
credentials = _auth.default_credentials()
File "/home/alican/.local/lib/python2.7/site-packages/googleapiclient/_auth.py", line 40, in default_credentials
return oauth2client.client.GoogleCredentials.get_application_default()
File "/home/alican/.local/lib/python2.7/site-packages/oauth2client/client.py", line 1264, in get_application_default
return GoogleCredentials._get_implicit_credentials()
File "/home/alican/.local/lib/python2.7/site-packages/oauth2client/client.py", line 1254, in _get_implicit_credentials
raise ApplicationDefaultCredentialsError(ADC_HELP_MSG)
oauth2client.client.ApplicationDefaultCredentialsError: The Application Default Credentials are not available. They are available if running in Google Compute Engine. Otherwise, the environment variable GOOGLE_APPLICATION_CREDENTIALS must be defined pointing to a file defining the credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information.
这是 google-api-python-client 1.6 版的问题。使用之前的版本(1.5.5)应该可以解决问题。
如果您想使用 google-api-python-client 1.6 版,请执行以下操作。
转到 https://console.developers.google.com/apis/credentials。 Select 创建凭据,选择服务帐户密钥,选择 App Engine 默认服务帐户,下载 JSON 文件并将其放入您的项目文件夹中。然后将它设置为环境变量GOOGLE_APPLICATION_CREDENTIALS
。
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "./google_application_credentials.json"