设置和使用 OAuth

所有本地服务 API 调用都必须通过 OAuth 2.0 进行授权。这样一来,您的本地生活服务 API 客户端应用就能够访问用户的本地生活服务广告账号,而无需处理或存储用户的登录信息。

本地服务 API 使用 OAuth 2.0 协议对用户进行身份验证。如需详细了解 OAuth 2.0,请参阅使用 OAuth 2.0 访问 Google API

为本地服务 API 配置 Google API 控制台项目

若要对 Google Ads 用户进行身份验证和授权,您必须拥有用于访问 Google OAuth 2.0 服务器的凭据。这些凭据会让 Google 识别您的应用,并允许您生成用于管理 Google Ads 用户的 OAuth 令牌。使用 Google API 控制台管理对您的 Google OAuth 2.0 凭据的访问权限。

如需接收这些凭据,请执行以下步骤:

  1. 创建项目。为此,请前往 Google API 控制台。点击创建项目,输入名称,然后点击创建

  2. 在项目中启用 Local Services API:

    1. 在 Google API 控制台中打开 API 库。如果系统提示,请选择您的项目或创建一个新项目。API 库中列出了所有可用的 API(按产品系列和热门程度分组)。

      如果列表中没有显示 Local Services API,请使用搜索框查找该 API。

    2. 选择 Local Services API,然后点击启用

  3. 选择应用类型。本地服务 API 使用的应用类型与 Google Ads API 相同。如需详细了解应使用哪种应用类型,请参阅选择应用类型

  4. 创建客户端 ID 和客户端密钥。对于 Local Services API,请按照与 Google Ads API 相同的步骤创建客户端 ID 和客户端密钥。这两个用例的步骤完全相同。

使用客户端库获取 OAuth 2.0 令牌

如需查看可用于发出 OAuth 2.0 授权请求的客户端库列表,请参阅客户端库。请按照特定于库的说明了解如何使用刷新令牌获取新的访问令牌。

如何获取 OAuth 2.0 刷新令牌

我们建议您在生产环境中使用客户端库来验证用户身份。如果您想使用 HTTP 客户端进行测试,请按照以下说明获取 OAuth 2.0 刷新令牌和访问令牌。第 1 步、第 2 步和第 3 步是一次性设置说明,您必须手动执行;第 4 步和第 5 步之后可以自动执行,无需人工干预,例如通过 cron 作业。

  1. 下载并安装 curl,这是一款用于发出 HTTP 网络请求的命令行工具。

  2. 按照 OAuth Playground 页面上的说明获取 OAuth 2.0 刷新令牌。请为 Local Services API 使用以下范围:

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

    此范围与 Google Ads API 使用的 OAuth 2.0 范围相同。

    在此步骤结束时,您会收到两个令牌:刷新令牌和访问令牌。保存这两个文件。

  3. 在命令提示符下运行以下命令,验证上一步是否成功:

    curl https://oauth2.googleapis.com/tokeninfo?access_token=<INSERT_ACCESS_TOKEN>
    

    如果命令输出显示类似如下所示的消息,则表示成功:

    {
      "azp": "************-********************************.apps.googleusercontent.com",
      "aud": "************-********************************.apps.googleusercontent.com",
      "scope": "https://www.googleapis.com/auth/adwords [googleapis.com]",
      "exp": "1611183382",
      "expires_in": "3482",
      "access_type": "offline"
    }
    

    如果出现错误或范围不正确,请尝试重新生成令牌。

  4. 在无需人工干预的情况下生成新的访问令牌。这一点非常重要,因为访问令牌每小时都会过期。刷新令牌的过期时间要长得多,因此当不再需要刷新令牌时,您通常需要手动撤消它们。

    如需获取新的访问令牌,请运行以下命令:

    curl --data "refresh_token=<INSERT_REFRESH_TOKEN>&client_id=<INSERT_CLIENT_ID>&client_secret=<INSERT_CLIENT_SECRET>&grant_type=refresh_token" -X POST "https://oauth2.googleapis.com/token”
    
  5. 运行以下 API 调用:

    curl -H "Authorization: Bearer <INSERT_ACCESS_TOKEN>" https://localservices.googleapis.com/v1/accountReports:search?query=manager_customer_id:<INSERT_10_DIGIT_MANAGER_CUSTOMER_ID_WITHOUT_HYPHENS>
    

    如果此调用成功,则表示设置已完成。