Не удается получить доступ к API управления Adsense

Невозможно получить доступ к API AdSense, что бы я ни пытался. Я пробовал оба учетная запись службы а также OAuth . аутентификации

Что я пытаюсь сделать:

Создание бота, который будет получать доход от Adsense и сохранять его в собственной базе данных для отслеживания доходов с течением времени. Я не хочу иметь проблемы с аутентификацией, я хочу сервер-сервер конфигурации.

Я знаю, что вы можете иметь токены доступа и обновлять токены в OAuth. Я еще не смог заставить их работать под любыми доступными API с AdSense. Примечание. Я создал API для работы с AdWords без проблем.

Ошибки: (Между типами аутентификации я не могу пройти эти)

  • «Аккаунт не найден»

  • «Клиент не авторизован для получения токенов доступа с помощью этого метода».

Что я сделал до сих пор:

  • API управления Adsense включен.

  • Учетные данные созданы: учетная запись службы

  • Credentials Created: oAuth 2.0 Идентификатор клиента

  • Учетная запись GSuite имеет доступ к API (включает «разрешенный доступ API» и «управляемый клиентский доступ API»)

Библиотеки (пытающиеся) использовать:

https://developers.google.com/api-client-library/php/

https://github.com/google/google-api-php-client

https://github.com/google/google-api-php-client-services

(Устаревший) https://github.com/googleads/googleads-adsense-examples

Пример кода: (используя учетную запись службы)

$client = new \Google_Client();
$client->setAuthConfig(WRITEPATH . 'auth/adsense-client.json');
$client->setIncludeGrantedScopes(true);
$client->addScope('https://www.googleapis.com/auth/adsense');
$client->setSubject('email@example.com');

// trying to fire the services
$service = new \Google_Service_AdSense($client);
$report  = $service->accounts_reports->generate('clientId', $startDate, $endDate, $optParams);

Этот скрипт запускает «Клиент не авторизован для получения токенов доступа с помощью этого метода». сообщение об ошибке. Однако используемый адрес электронной почты может получить доступ к учетной записи AdSense, API включены и настроены на уровне домена администратора.

Есть ли более простой способ? Есть ли кто-нибудь, кто может привести меня в правильном направлении?

0

Решение

Сервисный аккаунт

Я не совсем уверен, что учетные записи службы работают с Adsence. Вы можете попробовать перейти на веб-сайт Adsence и в разделе manageUsers добавить адрес электронной почты учетной записи службы. Проблема здесь в том, что она будет находиться в ожидании, я думаю, потому что учетная запись службы должна подтвердить, что она была добавлена. Нет способа сделать это.

Уровень домена администратора

Если вы пытаетесь добавить к этому делегирование домена, я бы не стал беспокоиться об этом, насколько я вижу, что он не поддерживается.

Клиент не авторизован для получения токенов доступа с использованием этого метода.

Что касается этой ошибки, я могу помочь. Это означает, что вы взяли загруженный вами файл учетных данных для учетной записи службы и пытаетесь использовать его с кодом для Oauth2. или наоборот. Загрузите файл учетных данных еще раз и попробуйте снова.

У меня есть пример кода, который может помочь Вот

2

Другие решения

Других решений пока нет …