Невозможно получить доступ к 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 protected]');
// trying to fire the services
$service = new \Google_Service_AdSense($client);
$report = $service->accounts_reports->generate('clientId', $startDate, $endDate, $optParams);
Этот скрипт запускает «Клиент не авторизован для получения токенов доступа с помощью этого метода». сообщение об ошибке. Однако используемый адрес электронной почты может получить доступ к учетной записи AdSense, API включены и настроены на уровне домена администратора.
Есть ли более простой способ? Есть ли кто-нибудь, кто может привести меня в правильном направлении?
Сервисный аккаунт
Я не совсем уверен, что учетные записи службы работают с Adsence. Вы можете попробовать перейти на веб-сайт Adsence и в разделе manageUsers добавить адрес электронной почты учетной записи службы. Проблема здесь в том, что она будет находиться в ожидании, я думаю, потому что учетная запись службы должна подтвердить, что она была добавлена. Нет способа сделать это.
Уровень домена администратора
Если вы пытаетесь добавить к этому делегирование домена, я бы не стал беспокоиться об этом, насколько я вижу, что он не поддерживается.
Клиент не авторизован для получения токенов доступа с использованием этого метода.
Что касается этой ошибки, я могу помочь. Это означает, что вы взяли загруженный вами файл учетных данных для учетной записи службы и пытаетесь использовать его с кодом для Oauth2. или наоборот. Загрузите файл учетных данных еще раз и попробуйте снова.
У меня есть пример кода, который может помочь Вот
Других решений пока нет …