Google Ads API 的 OAuth 2.0 内部结构

本部分面向已熟悉 OAuth 2.0 规范并了解如何将 OAuth 2.0 与 Google API 搭配使用的高级用户。

范围

单个访问令牌可以授予对多个 API 的不同程度的访问权限。一个名为 scope 的可变形参用于控制访问令牌允许的资源和操作集。在访问令牌请求期间,您的应用会在 scope 参数中发送一个或多个值。

Google Ads API 的范围为:

https://www.googleapis.com/auth/adwords

离线访问和令牌生命周期

Google Ads API 客户端应用通常会请求离线访问权限。例如,当用户未实际在线浏览您的网站时,您的应用可能需要运行批处理作业。访问令牌的有效期为 3,600 秒(1 小时),之后您的应用必须将刷新令牌换成新的访问令牌。

如需为 Web 应用类型请求离线访问权限,请确保将 access_type 参数设置为 offline。如需了解详情,请参阅 Google 的 OAuth 2.0 指南。

对于桌面应用类型,离线访问权限默认处于启用状态,您无需明确请求。

请求标头

向 Google Ads API 发出的所有请求都必须在请求标头中包含 OAuth 2.0 访问令牌。以下部分介绍了如何使用 gRPC 和 REST 传递这些凭据。

gRPC 标头

使用 gRPC API 时,请在每个请求中添加访问令牌。您可以将 Credential 绑定到 Channel,以便在相应渠道上的所有请求中使用。您还可以为每次调用发送自定义凭据。gRPC 授权指南详细介绍了如何处理授权。

REST 标头

使用 REST API 时,通过 HTTP 标头 Authorization: Bearer <ACCESS_TOKEN> 传递访问令牌。以下是一个 HTTP 请求示例:

# Returns the resource names of customers directly accessible by the user
# authenticating the call.
#
# Variables:
#   API_VERSION,
#   OAUTH2_ACCESS_TOKEN:
#     See https://developers.google.com/google-ads/api/rest/auth#request_headers
#     for details.
#
curl -f --request GET \
"https://googleads.googleapis.com/v${API_VERSION}/customers:listAccessibleCustomers" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \