我正在开发 Google Adwords API,以升级我们的代码,以便从 v201302 迁移到 v201309。 任何人都可以建议我,我们应该使用什么代码来代替以下代码(因为 ClientLoginTokens 现已弃用)。
String clientLoginToken = new ClientLoginTokens.Builder()
.forApi(ClientLoginTokens.Api.ADWORDS)
.withEmailAndPassword(configurations.get("email"), configurations.get("password"))
.build()
.requestToken();
最佳答案
以下是我为使 OAuth2 正常工作而采取的步骤。 YMMV 当然...
第 1 步 - 使用 Google Console API 注册应用
- 使用上面的电子邮件地址和密码登录 Google
- 前往Google API Console 。您可能会被重定向到 Google Cloud Console
- 在“API 和身份验证”下,点击“同意屏幕”。至少填写“产品名称”和“电子邮件”。
- 在“API 和身份验证”下,点击“注册的应用”。
- 点击“注册应用程序”。填写详细信息,确保选择“ native ”作为平台。
- 在“OAuth 2.0 客户端 ID”下,记下“客户端 ID”和“客户端密码”值。
第 2 步 - 生成刷新 token
下一步是生成刷新 token 。这是一个生成一次使用多次的 token ,允许您的应用程序获取新的访问 token :
- 下载 GetRefreshToken.java 。
创建一个供
GoogleClientSecretsBuilder() 引用的
调用。此aps.properties
文件 .forApi(Api.ADWORDS)ads.properties
文件应包含两行:api.adwords.clientId=client-id-from-step1.6
api.adwords.clientSecret=client-secret-from-step1.6
使用网络浏览器登录 Google AdWords MCC。
- 运行
GetRefreshToken.java
并按照说明进行操作,即将浏览器 URL 复制到浏览器中,输入返回到控制台的代码等。 - 您现在应该有一个刷新 token 。将此刷新 token 复制到您的
ads.properties
文件中,如下所示:
api.adwords.refreshToken=your-refresh-token
PS GetRefreshToken.java
有几个依赖项。如果您使用 Maven,那么它们在这里(相应地调整版本!):
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-oauth2</artifactId>
<version>v2-rev50-1.17.0-rc</version>
</dependency>
<dependency>
<groupId>com.google.api-ads</groupId>
<artifactId>adwords-axis</artifactId>
<version>1.20.0</version>
</dependency>
第 3 步 - 生成凭据
使用ads.properties
中的refreshToken、clientId和clientSecret,您现在可以生成如下凭证:
Credential oAuth2Credential = new OfflineCredentials.Builder()
.forApi(Api.ADWORDS)
.fromFile()
.build()
.generateCredential();
第 4 步 - 获取 AdWords session
最后一步(如果您已经完成了这一步,向您致敬!)是使用您在第 1 步中创建的 Credential
的 oAuth2Credential
实例创建 AdWords session 3. 您可以通过在 ads.properties 文件中添加另外两项内容来实现此目的:
api.adwords.developerToken=developer-token-from-mcc
api.adwords.clientCustomerId=您想要访问的 adwords-account-client-id
然后使用如下方式启动 AdWords session :
AdWordsSession awSession =
new AdWordsSession.Builder()
.fromFile()
.withOAuth2Credential(oAuth2Credential)
.build();
第 5 步 - 喝杯咖啡,思考一下使用 OAuth2 访问 Google AdWords API 是多么容易
此步骤完全是可选的。
关于google-ads-api - ClientLoginTokens 的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19724730/