当前位置: 首页 > 知识库问答 >
问题:

从谷歌网站管理员工具API下载数据

苏高旻
2023-03-14

有没有人能提供一个例子或链接,说明如何从谷歌网站管理员工具API导出TOP\u查询

存储库中没有示例,似乎任何地方都没有可用的教程/示例

https://github.com/google/google-api-php-client

代码连接到网站管理员工具。。如何从特定日期间隔下载TOP\u查询

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();
}

共有3个答案

艾鹭洋
2023-03-14

假设您的应用程序设置正确,下面是我所采取的方法的示例:

// 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' );
}

我刚刚在博客上发布了一篇完整的文章,其中有一个我开始编写的示例类,作为网站管理员工具应用编程接口和分析应用编程接口的包装器。请随意使用此作为参考:

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/

颜志学
2023-03-14
Error calling GET
https://www.googleapis.com/webmasters/v3/sites/https%3A%2F%2Fexample.com%2F: (404)
'https://example.com/'

在此帐户中不是已验证的网站管理员工具网站。

该网站并非以http://开头,而是以www.example.comexample.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);
}
空佐
2023-03-14

在这条线之后

    $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);

它为我们工作……:)

 类似资料:
  • 我正试图从谷歌网站管理员工具中获取我的公司注册的公司列表。我使用PHP和用于PHP的GoogleAPI客户端库来实现这一点(https://developers.google.com/api-client-library/php/). 我已经做了所有的事情,除了结果是它给了我一个空数组。我的代码如下,任何帮助都将不胜感激。 为客户端id、帐户等填写适当的值,并且所有内容都进行了适当的身份验证,因为

  • 我一直有一个问题与网站管理员工具API。我试图让脚本没有用户交互,并获得我需要的信息。我有谷歌分析与服务帐户,但这是不支持的网站管理员工具。 我目前正在尝试使用API服务器密钥,但当我尝试查询API返回时: 代码403:“用户没有足够的网站权限” 然而,我是我试图查询的网站的所有者。我已经检查了www.google.com/webmasters/tools/home,网站已经验证。 所以我在问我的

  • 所以我只在索引页上使用href lang,如下所示: 但我在谷歌网站管理员工具中不断得到这些错误 Google检测到您站点上的某些页面错误地实现了rel-alternate-hreflang标记。特别是,似乎存在不正确的语言和地区代码的问题,或者不正确的双向链接(如果页面a用hreflang链接到页面B,那么也必须有从B返回到a的链接)。Google使用hreflang属性在搜索结果中向正确的用户

  • 我正在使用这个库:https://github.com/googleapis/google-api-php-client 我创建了一个简单的PHP脚本,从谷歌搜索控制台/网站管理员工具中获取一些关于我拥有的域名性能的信息。 它不打算代表访问页面并拥有自己网站的用户进行自动身份验证。它旨在显示关于我的网站的信息,并通过固定的服务号进行标识。下面更详细。 下面是PHP代码: 因此,我做了以下工作: 在

  • 我使用以下代码从搜索控制台获取我的网站的统计数据: 我使用google服务帐户来授权api调用,但它给了我一个错误: 呼叫POST时出错https://www.googleapis.com/webmasters/v3/sites/http://www.example.com//searchAnalytics/query: (403)用户没有足够的权限访问站点“http*:///www.exampl

  • 我已经得到了分析工作的代码,以便它能够查询谷歌分析,并带回结果,但是当我试图使用代码查询网站管理员工具时,它会返回权限不足。 支持谷歌的API包括:分析API、谷歌搜索控制台API 我有什么遗漏吗? 谷歌分析代码: 网站管理员工具代码: 网站管理员工具错误消息: