API для веб-мастеров и PHP - PullRequest
4 голосов
/ 27 мая 2011

Я создаю небольшой бэк-офис для своего сайта и хочу отобразить на нем данные инструментов для веб-мастеров, я не могу это понять на всю жизнь!

Есть ли у кого-нибудь примеры PHP для извлечения информации?данных из инструментов веб-мастеров, использующих API с PHP, я не получаю документацию и нашел класс php, который выглядит так, как будто он больше не работает, но есть ли уже работающий класс?

Если бы у меня былПример для начала, я думаю, я мог бы выяснить остальное, я гуглил это в течение нескольких дней и не имел никакого успеха.

Если бы я мог просто получить список сайтов, принадлежащих моемуучетная запись, которая будет началом !!

Для записи, которую я копал в документации в Google, но я не могу быть первым человеком, который хотел сделать это, поэтому должны быть люди, которые имеюту меня все получилось!

Есть ли какие-нибудь укротители, которые бросают мне кость?

Iain

Ответы [ 3 ]

3 голосов
/ 10 июня 2011

Вот рабочий пример для получения списка сайтов.Я использовал мой класс xhttp , который является оболочкой PHP cURL, чтобы скрыть мельчайшие детали при использовании cURL.

<?php

// Set account login info
$data['post'] = array(
  'accountType' => 'HOSTED_OR_GOOGLE',  // indicates a Google account
  'Email'       => '',  // full email address
  'Passwd'      => '',
  'service'     => 'sitemaps', // Name of the Google service
  'source'      => 'codecri.me-example-1.0' // Application's name'
);

// POST request
$response = xhttp::fetch('https://www.google.com/accounts/ClientLogin', $data);

// Extract Auth
preg_match('/Auth=(.+)/', $response['body'], $matches);
$auth = $matches[1];

$data = array();
$data['headers'] = array(
    'Authorization' => 'GoogleLogin auth="'.$auth.'"',
);

// GET request    
$response = xhttp::fetch('https://www.google.com/webmasters/tools/feeds/sites/', $data);

echo $response['body'];

?>

Первое, что делает скрипт, это получает ключ авторизации через Google ClientLogin .Используемое имя службы: sitemaps.Вы также можете использовать OAuth или Oauth2 или AuthSub .

Далее нужно получить конечную точку URL-адреса API для получения списка сайтов и просто добавить поле заголовка Authorization.

ОБНОВЛЕНИЕ: 20 АПРЕЛЯ 2012 ГОДА ВХОД ДЛЯ КЛИЕНТА, как показано в приведенном выше примере скрипта, больше не будет работать, поскольку он устарел в Google.Подробности см. Здесь: https://developers.google.com/accounts/docs/AuthForInstalledApps

Лучшим решением было бы использовать Oauth 2.0 для подключения к API инструментов для веб-мастеров Google.

0 голосов
/ 21 октября 2015

Если вы правильно настроили приложение, вот пример подхода, который я выбрал:

// Authenticate through OAuth 2.0
$credentials = new Google_Auth_AssertionCredentials(
    '1111111111-somebigemail@developer.gserviceaccount.com',
    [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-интерфейса Google Analytics. Не стесняйтесь использовать это как ссылку:

http://robido.com/php/a-google-webmaster-tools-api-php-example-using-search-analytics-api-to-download-search-analytics-data-as-csv-with-the-new-oauth-2-0-method/

0 голосов
/ 31 мая 2013

Вы можете использовать этот класс для получения данных: это было проверено, поможет вам получить TOP_PAGES, TOP_QUERIES, CRAWL_ERRORS, CONTENT_ERRORS, CONTENT_KEYWORDS, INTERNAL_LINKS, EXTERNAL_LINKS, SOCIAL_ACTIVITY

https://github.com/eyecatchup/php-webmaster-tools-downloads

Надеюсь, это поможет вам.

...