Может ли кто-нибудь предоставить пример или ссылку о том, как экспортировать TOP_QUERIES
из Google Инструменты для веб-мастеров API?
В репозитории нет примеров, и, кажется, нигде нет доступных учебников / примеров.
https://github.com/google/google-api-php-client
Этот код подключается к Инструментам для веб-мастеров. Как загрузить TOP_QUERIES
из определенного интервала дат?
require_once 'googleapi/autoload.php';
try{
$credentials = new Google_Auth_AssertionCredentials(
'262251945544-20r941rab6leiuo21ph7ielemtrcsmai@developer.gserviceaccount.com',
[Google_Service_Webmasters::WEBMASTERS_READONLY],
file_get_contents('9f21d103bb56.p12')
);
$client = new Google_Client();
$client->setAssertionCredentials($credentials);
if($client->getAuth()->isAccessTokenExpired()){
$client->getAuth()->refreshTokenWithAssertion();
}
$service = new Google_Service_Webmasters($client);
$t = $service->sites->get('https://example.com/');
print_r($t);
}
catch(Google_Exception $e){
echo $e->getMessage();
}
catch(Google_Service_Exception $e){
echo $e->getMessage();
}
Error calling GET
https://www.googleapis.com/webmasters/v3/sites/https%3A%2F%2Fexample.com%2F: (404)
'https://example.com/'
не является подтвержденным сайтом Инструментов для веб-мастеров в этом аккаунте.
Сайт не начинается с http://
начинается с www.example.com
или же example.com
, Никаких косых черт тоже нет.
$t = $service->sites->get('example.com');
https://api.kdyby.org/class-Google_Service_Webmasters_SitesListResponse.html
Попробуйте эти фрагменты:
<?php
$sites = $service->sites->listSites();
print_r(json_encode($sites->toSimpleObject());
или же
<?php
$sites = $service->sites->listSites();
foreach ($sites as $site) {
print_r($site);
}
Если вы правильно настроили приложение, вот пример подхода, который я выбрал:
// Authenticate through OAuth 2.0
$credentials = new Google_Auth_AssertionCredentials(
'[email protected]',
[Google_Service_Webmasters::WEBMASTERS_READONLY],
file_get_contents( 'path-to-your-key.p12' )
);
$client = new Google_Client();
$client->setAssertionCredentials( $credentials );
if ( $client->getAuth()->isAccessTokenExpired() ) {
$client->getAuth()->refreshTokenWithAssertion();
}
$service = new Google_Service_Webmasters($client);
// Setup our Search Analytics Query object
$search = new Google_Service_Webmasters_SearchAnalyticsQueryRequest;
$search->setStartDate( date( 'Y-m-d', strtotime( '1 month ago' ) ) );
$search->setEndDate( date( 'Y-m-d', strtotime( 'now' ) ) );
$search->setDimensions( array( 'query' ) );
$search->setRowLimit( 50 );
// Pass our Search Analytics Query object as the second param to our searchanalytics query() method
$results = $service->searchanalytics->query( $url, $search, $options )->getRows();
// Build a CSV
if ( ! empty( $results ) ) {
// Setup our header row
$csv = "Rank,Query,Clicks,Impressions,CTR,Position\r\n";
foreach ( $results as $key => $result ) {
// Columns
$columns = array(
$key + 1,
$result->keys[0],
$result->clicks,
$result->impressions,
round( $result->ctr * 100, 2 ) . '%',
round( $result->position, 1 ),
);
$csv .= '"' . implode( '","', $columns ) . '"' . "\r\n";
}
file_put_contents( dirname( __FILE__ ) . '/data.csv' );
}
У меня есть полная статья, которую я только что опубликовал в своем блоге, в которой есть пример класса, который я начал писать как оболочку для API инструментов для веб-мастеров и API-интерфейса аналитики. Не стесняйтесь использовать это как ссылку:
После этой строки
$service = new Google_Service_Webmasters($client);
Добавь это
$searchanalytics = $webmastersService->searchanalytics;
$request = new \Google_Service_Webmasters_SearchAnalyticsQueryRequest();
$request->setStartDate('2016-03-01'); // startdate required
$request->setEndDate('2016-03-31'); // Enddate required
$dimensions[] = 'query';
$request->setDimensions($dimensions);
Чем заменить эту строку
$results = $service->searchanalytics->query( $url, $search, $options )->getRows();
от
$results = $searchanalytics->query('site_URL', $request);
для нас это работа ….. 🙂