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

谷歌网站管理员工具API

郎喜
2023-03-14

我正试图从谷歌网站管理员工具中获取我的公司注册的公司列表。我使用PHP和用于PHP的GoogleAPI客户端库来实现这一点(https://developers.google.com/api-client-library/php/). 我已经做了所有的事情,除了结果是它给了我一个空数组。我的代码如下,任何帮助都将不胜感激。

为客户端id、帐户等填写适当的值,并且所有内容都进行了适当的身份验证,因为我使用了相同的代码来访问books API。

    <?php
    /*
     * Copyright 2013 Google Inc.
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *     http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
    session_start();
    include_once "templates/base.php";

    /************************************************
      Make an API request authenticated with a service
      account.
     ************************************************/
    require_once realpath(dirname(__FILE__) . '/../autoload.php');

    /************************************************
      ATTENTION: Fill in these values! You can get
      them by creating a new Service Account in the
      API console. Be sure to store the key file
      somewhere you can get to it - though in real
      operations you'd want to make sure it wasn't
      accessible from the webserver!
      The name is the email address value provided
      as part of the service account (not your
      address!)
      Make sure the Books API is enabled on this
      account as well, or the call will fail.
     ************************************************/
    $client_id = <Client ID>; //Client ID
    $service_account_name = <Service Account Name>; //Email Address
    $key_file_location = <Key Location>; //key.p12

    echo pageHeader("Service Account Access");
    if ($client_id == <Client ID>
        || !strlen($service_account_name)
        || !strlen($key_file_location)) {
      echo missingServiceAccountDetailsWarning();
    }

    $client = new Google_Client();
    $client->setApplicationName("Client_Library_Examples");
    $service = new Google_Service_Webmasters($client);

    /************************************************
      If we have an access token, we can carry on.
      Otherwise, we'll get one with the help of an
      assertion credential. In other examples the list
      of scopes was managed by the Client, but here
      we have to list them manually. We also supply
      the service account
     ************************************************/
    if (isset($_SESSION['service_token'])) {
      $client->setAccessToken($_SESSION['service_token']);
    }
    $key = file_get_contents($key_file_location);
    $cred = new Google_Auth_AssertionCredentials(
        $service_account_name,
        array('https://www.googleapis.com/auth/webmasters'),
        $key
    );
    $client->setAssertionCredentials($cred);
    if ($client->getAuth()->isAccessTokenExpired()) {
      $client->getAuth()->refreshTokenWithAssertion($cred);
    }
    $_SESSION['service_token'] = $client->getAccessToken();

    /************************************************
      We're just going to make the same call as in the
      simple query as an example.
     ************************************************/

    $results = $service->sites->listSites();

    $siteList = $results->siteEntry;

var_dump($siteList);

// $optParams = array('filter' => 'free-ebooks');
// $results = $service->volumes->listVolumes('Henry David Thoreau', $optParams);
// echo "<h3>Results Of Call:</h3>";
// foreach ($results as $item) {
//   echo $item['volumeInfo']['title'], "<br /> \n";
// }

echo pageFooter(__FILE__);

共有1个答案

孔权
2023-03-14

我想出来了。这是因为我没有在“网站管理员工具”界面中为我试图连接的用户分配适当的权限。只需单击每个站点旁边的设备并添加用户。

 类似资料:
  • 有没有人能提供一个例子或链接,说明如何从谷歌网站管理员工具API导出? 存储库中没有示例,似乎任何地方都没有可用的教程/示例 https://github.com/google/google-api-php-client 此代码连接到网站管理员工具。。如何从特定日期间隔下载?

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

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

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

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

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