API Google Webmaster Tools

Я пытаюсь получить список компаний, которые моя компания зарегистрировала в своих инструментах Google для веб-мастеров. Я делаю это, используя PHP и клиентскую библиотеку Google API для PHP (https://developers.google.com/api-client-library/php/). Я получил все, кроме того факта, что он дает мне пустой массив в результате. Мой код ниже, и любая помощь будет принята с благодарностью.

Соответствующие значения заполняются для идентификатора клиента, учетной записи и т. Д., И все аутентифицируется соответствующим образом, так как я использовал тот же код для доступа к 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__);

5

Решение

Я понял. Это потому, что я не назначил соответствующие разрешения в интерфейсе Инструментов для веб-мастеров пользователю, с которым пытался связаться. Просто нужно было нажать на шестерёнку рядом с каждым сайтом и добавить пользователя.

3

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

Других решений пока нет …

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