Я звоню в API индексации Google для объявлений о вакансиях:
private $client;
private $httpClient;
public function initClient($kernel)
{
$this->client = new \Google_Client();
$this->client->setAuthConfig(JSON_KEY_HERE);
$this->client->addScope('https://www.googleapis.com/auth/indexing');
$this->httpClient = $this->client->authorize();
}
public function sendJob()
{
$endpoint = 'https://indexing.googleapis.com/v3/urlNotifications:publish';
$content = "{
\"url\": \"URL_HERE\",
\"type\": \"URL_UPDATED\"}";
$response = $this->httpClient->post($endpoint, array('body' => $content));
}
При обращении к API выдается ответ «403 — запрещено».
,
Есть идеи, что на самом деле означает эта ошибка? Я правильно создал учетную запись службы, но не могу повторить успех из моей среды разработки.
Убедитесь, что вы добавили учетную запись службы в качестве владельца в Google Search Console, как описано здесь: https://developers.google.com/search/apis/indexing-api/v3/prereqs#verify-site.
Моя проблема заключалась в том, что у нас было несколько записей для домена в консоли поиска (с и без www и с и без https); после добавления учетной записи сервиса как владельца ко всем 4 записям она работает.
«Убедитесь, что вы добавили учетную запись службы в качестве владельца в Google Search Console»
Ага. Используйте следующий фрагмент кода, чтобы проверить ответ тела на предмет более подробного сообщения об ошибке.
var body = result.Content.ReadAsStringAsync().Result;
если сообщение об ошибке выглядит следующим образом, то это та же проблема.
«message»: «В доступе отказано. Не удалось подтвердить владение URL-адресом.»
Стоит отметить: новая версия поисковой консоли отсутствует. В нижней части левого меню находится ссылка «перейти к старой версии». щелкните по нему, а затем выберите «детали проверки» в меню шестеренки (вверху справа). Далее нажмите на ссылку с надписью «Детали проверки» (серьезно!). Здесь вы, наконец, увидите список подтвержденных владельцев в нижней части страницы. Вы можете добавить нового владельца здесь, используя адрес электронной почты вашей учетной записи службы (адрес также можно найти в вашем файле ключа json).