Yii Отправка карты сайта API Инструментов Google для веб-мастеров

Я искал повсюду и почти ничего не нашел по этой проблеме. Я сделал модуль для своего приложения Yii, который сканирует мой веб-сайт и собирает ссылки для генерации карты сайта, я даже сделал так, чтобы он мог работать на cron.

Сейчас я столкнулся с API Google Webmaster Tools, и у него нет информации о том, как реализовать его с помощью OAuth2 для отправки карты сайта.

Каждый раз, когда я пытался отправить карту сайта, я получал ответ:

{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Login Required",
"locationType": "header",
"location": "Authorization"}
],
"code": 401,
"message": "Login Required"}
}

Я был бы очень признателен за любые указатели в любом направлении.

1

Решение

Может быть, это расширение может помочь вам:

http://www.yiiframework.com/extension/jgoogleapi/

Я не уверен, что является API для карт сайта и каковы его методы, но это расширение поможет вам войти в Google в режиме «Сервис», который не требует вашего браузера для взаимодействия с логином.

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

Вставка моего файла конфигурации при использовании этого расширения с Google Analytics:

<?php
/*
* How to obtain a Service Account:
* https://developers.google.com/accounts/docs/OAuth2ServiceAccount
*
*
* (403) User does not have any Google Analytics account.
* http://stackoverflow.com/a/13167988/115050
*
*
*/
return array(
'class' => 'ext.JGoogleAPI.JGoogleAPI',
//Default authentication type to be used by the extension
'defaultAuthenticationType'=>'serviceAPI',

//Account type Authentication data
'serviceAPI' => array(
'clientId' => '...',
'clientEmail' => '...',
'keyFilePath' => dirname(__FILE__).'/../extensions/JGoogleAPI/keys/Analytics-a0e8e345f273.p12',
),
/*
//You can define one of the authentication types or both (for a Service Account or Web Application Account)
webAppAPI = array(
'clientId' => 'YOUR_WEB_APPLICATION_CLIENT_ID',
'clientEmail' => 'YOUR_WEB_APPLICATION_CLIENT_EMAIL',
'clientSecret' => 'YOUR_WEB_APPLICATION_CLIENT_SECRET',
'redirectUri' => 'YOUR_WEB_APPLICATION_REDIRECT_URI',
'javascriptOrigins' => 'YOUR_WEB_APPLICATION_JAVASCRIPT_ORIGINS',
),
*/
'simpleApiKey' => 'AIzaSyAx63Ht-0XmuLdp0-j9zVREKNsCyqXgeUA',

//Scopes needed to access the API data defined by authentication type
'scopes' => array(
'serviceAPI' => array(
'drive' => array(
'https://www.googleapis.com/auth/drive.file',
),
'Analytics'=>array(
'https://www.googleapis.com/auth/analytics.readonly',
),
),
'webappAPI' => array(
'drive' => array(
'https://www.googleapis.com/auth/drive.file',
),
),
),
//Use objects when retriving data from api if true or an array if false
'useObjects'=>false,
);

И как я это использую:

$api = Yii::app()->JGoogleAPI->getService('Analytics');
$api->data_ga->get(...)
0

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

Ваш код доступа недействителен. Используйте токен обновления, чтобы избежать ошибки при аутентификации клиента Google.

используйте следующий код:

$gClient->setAccessType("offline");// to get refresh token after expiration of access token
$gClient->setIncludeGrantedScopes(true);
0

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