Я действительно искал его и не нашел подходящего ответа.«У пользователя нет учетной записи AdSense» при использовании учетной записи службы для доступа к API управления AdSense
У меня есть учетные записи AdSense и AdMob, которые используют один и тот же идентификатор издателя. Они активны, и когда я пытаюсь использовать API в https://developers.google.com/adsense/management/v1.4/reference/accounts/list, он отлично работает.
1) Создал аккаунт AdSense с моей личной электронной почтой.
2) Включена в API управления AdSense в https://console.developers.google.com/apis/credentials
3) создания учетной записи службы и загружены секреты CREDENTIAL в JSon файл
5) Ждал, по крайней мере 48 часов. Наверное, больше.
4) Мой файл pom.xml имеет следующие зависимости:
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-adsense</artifactId>
<version>v1.4-rev160-1.21.0</version>
</dependency>
<dependency>
<groupId>com.google.http-client</groupId>
<artifactId>google-http-client-jackson2</artifactId>
<version>1.21.0</version>
</dependency>
<dependency>
<groupId>com.google.oauth-client</groupId>
<artifactId>google-oauth-client-jetty</artifactId>
<version>1.21.0</version>
</dependency>
5) Мой код
private static Credential authorize() throws Exception {
FileInputStream is = new FileInputStream("/data/admob-test.json");
GoogleCredential credential = GoogleCredential.fromStream(is).createScoped(AdSenseScopes.all());
credential.refreshToken();
return credential;
}
private static AdSense initializeAdsense() throws Exception {
// Authorization.
Credential credential = authorize();
HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
JacksonFactory jsonFactory = new JacksonFactory();
// Set up AdSense Management API client.
AdSense adsense = new AdSense.Builder(httpTransport, jsonFactory, credential).setApplicationName("random-app-name").build();
return adsense;
}
public static void main(String[] args) {
try {
AdSense adsense = initializeAdsense();
// I get an exception on the following line:
Accounts accounts = adsense.accounts().list().execute();
if ((accounts.getItems() != null) && !accounts.getItems().isEmpty()) {
System.out.println("SUCCESS!");
}
else {
System.out.println("FAIL!");
}
} catch (Exception e) {
e.printStackTrace();
}
}
6) Сообщение об ошибке
403 Forbidden
{
"code" : 403,
"errors" : [ {
"domain" : "global",
"message" : "User does not have an AdSense account.",
"reason" : "noAdSenseAccount"
} ],
"message" : "User does not have an AdSense account."
}
ли я что-то отсутствует? Я следил за каждой записью stackoverflow, которую я нашел по этому вопросу, но безрезультатно.
Когда я отлаживаю, объект учетных данных выглядит нормально, при этом загружаются все секреты учетной записи службы. Он получает AuthToken, когда я делаю credential.refreshToken(); команда. Я не понимаю, чего не хватает.
Любая помощь будет высоко оценена.
Эй, ты это исправил еще? Получение той же проблемы. –
Есть такая же проблемы – kirhgoff