Я работаю с Google Tag Manager API для извлечения учетных записей и контейнеров с помощью служебной учетной записи, и мой проект размещен в Google App Engine.
Это работает для получения ВСЕХ учетных записей, к которым у пользователя есть доступ, например:
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->setApplicationName("gtmdocx");$client->setScopes(['https://www.googleapis.com/auth/tagmanager.readonly',
'https://www.googleapis.com/auth/tagmanager.manage.accounts',
'https://www.googleapis.com/auth/tagmanager.edit.containers']);
$service = new Google_Service_TagManager($client);
$results = $service->accounts->listAccounts();$jsonp = json_encode($results);
echo $_GET['callback'] . '('.json_encode($jsonp).')';
Это дает мне результаты.
Но когда дело доходит до перечисления контейнеров, я получаю эту ошибку:
Тип: Google_Service_Exception Код: 404 Сообщение: не найдено Файл:
/base/data/home/apps/h~gtmdocx/20170908t154630.403962727349911910/vendor/google/apiclient/src/Google/Http/REST.php Строка: 118
Существует так мало документации по части PHP API Google Tag Manager, что я пытался искать безуспешно.
Это мой код «Список контейнеров», все как первый код с получением учетных записей, который работает, но это код для контейнеров:
$client->setScopes(['https://www.googleapis.com/auth/tagmanager.readonly',
'https://www.googleapis.com/auth/tagmanager.manage.accounts',
'https://www.googleapis.com/auth/tagmanager.edit.containers',
'https://www.googleapis.com/auth/tagmanager.publish'
]);
$service = new Google_Service_TagManager($client);
$containers = $service->accounts_containers->listAccountsContainers('1746756959');
Задача ещё не решена.
Других решений пока нет …