Я пытаюсь получить доступ к API Google для веб-мастеров, используя учетную запись службы. Но я не могу
Неустранимая ошибка PHP: необработанное исключение «Google_Auth_Exception» с сообщением «Ошибка обновления токена OAuth2, сообщение:« {
«error»: «invalid_grant»} »
Я пробовал следующие решения, как упоминалось в других сообщениях,
1. установлен нтп
2. date_default_timezone_set («Азия / Калькутта»);
3. sudo ntpdate pool.ntp.org
Но никто не работал. Пожалуйста, помогите кому-нибудь. Я застрял.
require_once realpath(dirname(__FILE__) . '/google-api-php-client-master/src/Google/autoload.php');
session_start();
$client_email = '[email protected]';
$private_key = file_get_contents('Config/myproject.p12');
$scopes = array('https://www.googleapis.com/auth/webmasters');
$credentials = new Google_Auth_AssertionCredentials(
$client_email,
$scopes,
$private_key
);
$client = new Google_Client();
$client->setAssertionCredentials($credentials);
if ($client->getAuth()->isAccessTokenExpired()) {
$client->getAuth()->refreshTokenWithAssertion();
}
$service = new Google_Service_Webmasters($client);
$list = $service->sitemaps->listSitemaps("www.example.com");
print_r($list);
Немного потрудившись, решил проблему самостоятельно. Это была маленькая глупая ошибка в следующей ссылке кода, где я упомянул относительный путь:
$private_key = file_get_contents('Config/myproject.p12');
Это сработало, когда я заменил его на абсолютный путь, то есть:
$private_key = file_get_contents(dirname(__FILE__) . '/Config/myproject.p12');
Других решений пока нет …