OAuth 桌面和 Web 应用流程

本指南介绍了如何使用自己的凭据以及桌面流程网页流程设置 OAuth2 以进行 API 访问。

为单个账号生成 OAuth2 凭据

调用 Google Ads API 帐号的最简单方法是

  1. 将您要对其发出 API 调用的所有帐号关联到一个 Google Ads 经理帐号

  2. 使用 GenerateUserCredentials 示例为有权访问经理帐号的用户生成 OAuth2 凭据。

  3. 使用 OAuth2 凭据调用您需要使用 Google Ads API 管理的所有帐号。

这些步骤只需执行一次,除非您撤消、删除 OAuth2 凭据或需要更改 OAuth2 凭据的允许范围。

第 1 步 - 创建 OAuth2 凭据

  1. 按照相应步骤为 Google Ads API 配置一个 Google API 控制台项目

  2. 记下客户端 IDSecret,然后返回此页面。

第 2 步 - 设置客户端库

  1. 在终端运行 GenerateUserCredentials 示例,此示例提示您输入 OAuth2 客户端 ID 和密钥。

    这是一个交互式示例,您需要提供输入。

    dotnet run GenerateUserCredentials.csproj
    
  2. 该示例会提示您提供 OAuth2 客户端 ID 和密钥。提供第 1 步中的详细信息。

  3. 该示例会在浏览器中自动打开网址。如果您未登录浏览器会话,网页将提示您登录 Google 帐号。如果您已登录,它会跳过登录提示,并将您重定向到一个网址,提示您授权应用代表您访问您的 Google Ads 帐号。

    意见征求屏幕

  4. 然后,系统会将您转到一个页面,该页面会显示一条指示授权成功的消息。

    已提取您的刷新令牌。请查看控制台输出,了解进一步的操作说明。

  5. 返回到您运行示例的控制台。下例应该已经完成,显示了您的刷新令牌和一些说明,然后是配置客户端库所需的属性:

    Copy the following content into your App.config file.
    
    <add key = 'OAuth2Mode' value = 'APPLICATION' />
    <add key = 'OAuth2ClientId' value = '******' />
    <add key = 'OAuth2ClientSecret' value = '******' />
    <add key = 'OAuth2RefreshToken' value = '******' />
    
    Make sure you also set the LOGIN_CUSTOMER_ID header. See
    https://developers.google.com/google-ads/api/docs/client-libs/dotnet/configuration#google_ads_api_settings
    to learn more.
    
    <add key = 'LoginCustomerId' value = 'INSERT_LOGIN_CUSTOMER_ID_HERE' />
    
    See https://developers.google.com/google-ads/api/docs/client-libs/dotnet/configuration
    for alternate configuration options.
    

为交互式应用生成 OAuth2 凭据

如果您不知道要提前发出 API 调用的 Google Ads 帐号,可以在运行时使用会话中已登录用户的凭据发现该帐号。有关示例,请参阅 AuthenticateInAspNetCoreApplication 中当前登录的用户通过身份验证,并且在运行时获取 OAuth2 凭据。