Google PHP Webmaster API, ошибка разрешения

Я пытаюсь реализовать новый API Google для веб-мастеров.
Я уже использую Соединитель для Google Analytics, где все работает нормально.

У меня включен API, пользователь gmail также является владельцем сайта. Пользователь gmail также создал идентификатор клиента и учетную запись службы.

Затем я добавил для своей служебной учетной записи обе области WebMaster.
-> Для этого я взял электронную почту своей учетной записи службы и изменил ее с

 [email protected] =>946.apps.googleusercontent.com

и добавил области действия через меню администратора.

— Пробалы, я тут что-то не так делаю?

Я думаю, я просто забыл добавить или установить некоторые разрешения, но я действительно не знаю, какие именно. Кто-нибудь получил помощь по этому вопросу?

Моя ошибка

Uncaught exception 'Google_Service_Exception' with message 'Error calling POST
https://www.googleapis.com/webmasters/v3/sites/SITEURL/searchAnalytics/query: (403)
User does not have sufficient permission for site 'SITEURL'.
See also: https://support.google.com/webmasters/answer/2451999.'
in E:\xampp\htdocs\google\google-api-php-client\src\Google\Http\REST.php:110 Stack trace:
#0 E:\xampp\htdocs\google\google-api-php-client\src\Google\Http\REST.php(62):
Google_Http_REST::decodeHttpResponse(Object(Google_Http_Request), Object(Google_Client))
#1 [internal function]: Google_Http_REST::doExecute(Object(Google_Client), Object(Google_Http_Request))
#2 E:\xampp\htdocs\google\google-api-php-client\src\Google\Task\Runner.php(174): call_user_func_array(Array, Array)
#3 E:\xampp\htdocs\google\google-api-php-client\src\Google\Http\REST.php(46): Google_Task_Runner->run()
#4 E:\xampp\htdocs\google\google-api-php-client\src\Google\Client.php(593):
Google_Http_REST::execute(Object(Google_Cl in E:\xampp\htdocs\google\google-api-php-client\src\Google\Http\REST.php on line 110

Мой конктор:

public function connect() {

$this->setProfileId($this->options['ga_profile_id']);
$this->client = new Google_Client();
$this->client->setApplicationName("XXXNAMEXXX");
$this->client->setClientId('XXXX946.apps.googleusercontent.com');
$this->service = new Google_Service_Webmasters($this->client);

if (isset($this->serviceToken)) {
$this->client->setAccessToken($this->serviceToken);
}
$key = file_get_contents($this->options['ga_key_location']);

$cred = new Google_Auth_AssertionCredentials(
$this->options['ga_service_account_name'], array('https://www.googleapis.com/auth/webmasters.readonly','https://www.googleapis.com/auth/webmasters'), $key
);

$this->client->setAssertionCredentials($cred);

if ($this->client->getAuth()->isAccessTokenExpired()) {
$this->client->getAuth()->refreshTokenWithAssertion($cred);
}

$this->serviceToken = $this->client->getAccessToken();
}

Мой запрос вызова:

public function get_searchanalytics( $url, $limit = false, $dimensions = array( 'query' ), $aggregation_type = 'auto', $options = array() ) {
$search = new Google_Service_Webmasters_SearchAnalyticsQueryRequest;
$search->setStartDate( $start ? $start : date( 'Y-m-d', strtotime( '1 month ago' ) ) );
$search->setEndDate( $end ? $end : date( 'Y-m-d', strtotime( 'now' ) ) );
$search->setDimensions( $dimensions );
if ( $limit ) $search->setRowLimit( $limit );
$search->setAggregationType( $aggregation_type );
return $this->service->searchanalytics->query( $url, $search, $options )->getRows();
}

2

Решение

Задача ещё не решена.

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

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

По вопросам рекламы [email protected]