Google Indexing API Batching Requests - 404 Not Found Response
Google Indexing API 用のWordPressのプラグインを作っています。
リアルタイムに処理するリクエストは200が返ってきますが、バッチ処理の場合、404が返ってきてしまいます。
require_once plugin_dir_path( __FILE__ ).'/vendor/autoload.php';
$client = new Google_Client();
$client->setAuthConfig(plugin_dir_path( __FILE__ ).'/config/secret-key.json');
// Setting Scope
$client->addScope("https://www.googleapis.com/auth/indexing");
// Use batch
$client->setUseBatch(true);
$batch = new Google_Http_Batch($client,false,'https://indexing.googleapis.com');
// example url
$arr_url = array(
"https://example.com/job_option/job_op-title-job/",
"https://example.com/job_option/job_op-44/",
"https://example.com/job_option/job_op-title-job/job_op-31/",
);
foreach ($arr_url as $url) {
$postBody = new Google_Service_Indexing_UrlNotification();
$postBody->setType('URL_UPDATED');//regist.update
$postBody->setUrl($url);
$service = new Google_Service_Indexing($client);
$request = $service->urlNotifications->publish($postBody);
$batch->add($request);
}
$results = $batch->execute();
上記のコードで404だったので調べて別の書き方をしてみました。
require_once plugin_dir_path( __FILE__ ).'/vendor/autoload.php';
$client->setAuthConfig( plugin_dir_path( __FILE__ ).'/config/secret-key.json');
$client->addScope('https://www.googleapis.com/auth/indexing');
$client->setUseBatch(true);
$batch = new Google_Http_Batch($client);
// after authorization done, send the request to Google api
$endpoint = "https://indexing.googleapis.com/batch";
$content = json_encode(array(
"url" => "https://example.com/job_option/job_op-title-job/job_op-31/",
"type" => "URL_UPDATED"
),JSON_FORCE_OBJECT);
$request = new CreateRequest('POST', $endpoint, ['body' => $content]);
$batch->add($request);
$results = $batch->execute();
この書き方でも同じように404が返ってきてしまいます。
サービスアカウントは正しく作成しました。AWS上のCloudFrontで構築されているWordPressテストサイト(公開済み)からの送信しています。色々調べましたが解決の糸口が見つかりません。
どうかご教授いただきたいです。よろしくお願いします。