gpt4 book ai didi

java - AuthorizationError.USER_PERMISSION_DENIED 在针对测试 MCC 帐户(创建帐户)进行测试时

转载 作者:行者123 更新时间:2023-11-30 08:51:56 30 4
gpt4 key购买 nike

我正在尝试测试 AdWords API 以了解其功能。我不明白为什么我不断收到 AuthorizationError.USER_PERMISSION_DENIED 错误。

例如,我尝试在 AdWords 提供的 Java 客户端库示例中运行 CreateAccount.java。

这是我的步骤:1. 我创建了一个生产 MCC 帐户,然后获得了一个“Developer Token”2. 我创建了一个测试 MCC 帐户,然后从控制台获得了一个新的“Client ID”和“Client Secret”。由此我得到了“刷新 token ”我将“Developer Token”(来自上面的第 1 步)、“Client ID”和“Client Secret”放入 ads.properties。3. 对于 ads.properties 中的“用户代理”值,我输入了“项目 ID”的名称。4. 对于 ads.properties 中的“client customer id”值,我输入了测试 MCC 帐户的客户 ID。5. 然后我尝试在下面运行它并得到 AuthorizationError.USER_PERMISSION_DENIED 错误。

我想知道我是否遗漏或做错了任何步骤。预先感谢您的帮助。

下面是我要运行的代码。这一行抛出异常:

ManagedCustomerReturnValue result = managedCustomerService.mutate(operations);

这是完整的片段(来自 AdWords 代码示例)

// Generate a refreshable OAuth2 credential similar to a ClientLogin token
// and can be used in place of a service account.
Credential oAuth2Credential = new OfflineCredentials.Builder()
.forApi(Api.ADWORDS)
.fromFile()
.build()
.generateCredential();


// Construct an AdWordsSession.
AdWordsSession session = new AdWordsSession.Builder()
.fromFile()
.withOAuth2Credential(oAuth2Credential)
.build();


AdWordsServices adWordsServices = new AdWordsServices();

// Get the CampaignService.
ManagedCustomerServiceInterface managedCustomerService =
adWordsServices.get(session, ManagedCustomerServiceInterface.class);


// Create account.
ManagedCustomer customer = new ManagedCustomer();
customer.setName("Customer created with ManagedCustomerService on " + new DateTime());
customer.setCurrencyCode("EUR");
customer.setDateTimeZone("Europe/London");


// Create operations.
ManagedCustomerOperation operation = new ManagedCustomerOperation();
operation.setOperand(customer);
operation.setOperator(Operator.ADD);


ManagedCustomerOperation[] operations = new ManagedCustomerOperation[ {operation};


// Add account.
ManagedCustomerReturnValue result = managedCustomerService.mutate(operations);


// Display accounts.
for (ManagedCustomer customerResult : result.getValue()) {
System.out.println("Account with customer ID \"" + customerResult.getCustomerId()
+ "\" was created.");
}

最佳答案

我想你已经完成了这些步骤:

1] 在 Google Developer Console 上创建了一个应用程序,并获得了 ads.properties 的这些值:api.adwords.clientId 和 api.adwords.clientSecret

2] 然后,您在获得 developerToken 的地方创建生产 MCC 帐户。将其放入 ads.properties。

3] 然后创建 MCC 测试帐户,您可以在其中获得主要 mcc 帐户的 adwords id,您可能已将其放入 ads.properties。

4] 然后你使用运行 GetRefreshToken.java 从谷歌团队提供的示例中获得刷新 token 。进入您的测试 mcc gmail 帐户。然后您会在浏览器窗口中看到一些字符串。将该字符串作为输入复制到 java 输出控制台,然后按回车键。在此阶段,您将获得真正的 refreshToken 作为 java 输出控制台中的输出,将其复制到您的广告.属性)。

5] 将此设置用户代理设置为某个随机字符串后。

6] 然后从 google 团队提供的示例中运行 java 程序 CreateAccount.java。

7] 这应该可行。

大多数情况下,人们在生成 refreshToken 时会错误地遵循“GetRefreshToken.java”的过程。

关于java - AuthorizationError.USER_PERMISSION_DENIED 在针对测试 MCC 帐户(创建帐户)进行测试时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30362454/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com