问题描述
- 连接到 Google Search Console API
- 提取数据
- 将其导入 BigQuery
我可以找到各种代码示例来通过 OAuth、密钥等进行身份验证和连接,但是这些似乎都适用于本地运行的 Python 脚本,而不是在云中。 (我需要它在云端运行,无人值守)。
Google 文档说,在 Cloud Function 中,可以使用“应用默认凭据 (ADC) 自动查找您的服务帐户凭据”自动进行身份验证。
此代码示例例如连接到 Cloud Storage 并对其进行身份验证:
def implicit():
from google.cloud import storage
# If you don't specify credentials when constructing the client,the
# client library will look for credentials in the environment.
storage_client = storage.Client()
# Make an authenticated API request
buckets = list(storage_client.list_buckets())
print(buckets)
但是,我找不到任何关于如何创建将通过 ADC 机制进行身份验证的 Google Search Console 客户端的文档。
请帮忙!
解决方法
给你。
文档链接:https://developers.google.com/webmaster-tools/search-console-api-original/v3/samples
Github 代码示例链接:https://github.com/googleapis/google-api-python-client/blob/master/samples/searchconsole/search_analytics_api_sample.py
,根据Search API documnetation OAuth 2.0
是唯一的方法:
您的应用程序必须使用 OAuth 2.0 来授权请求。不支持其他授权协议。
云存储在 Python(以及其他语言)中有方便的 API,它正在处理这种 ADC 身份验证。说到Google Search API,我不是很熟悉,但是我查过example code。在示例中,如果我理解正确,身份验证是在 api 之外使用 oauth2client
完成的。
但是,我敢肯定,您也可以使用 Cloud Function 中的 OAuth 2.0
来实现,原因与您在本地使用完全相同。