

Google Indexing API 用のWordPressのプラグインを作っています。  
リアルタイムに処理するリクエストは200が返ってきますが、バッチ処理の場合、404が返ってきてしまいます。

[code]

    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();
    
[/code]

上記のコードで404だったので調べて別の書き方をしてみました。

[code]

        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();
    
[/code]

この書き方でも同じように404が返ってきてしまいます。

サービスアカウントは正しく作成しました。AWS上のCloudFrontで構築されているWordPressテストサイト（公開済み）からの送信しています。色々調べましたが解決の糸口が見つかりません。  
どうかご教授いただきたいです。よろしくお願いします。


CC BY-SA 4.0
2019-02-26T09:25:19.400
53052
2019-02-26T09:25:19.400
29473
question
php wordpress google-api
Google Indexing API Batching Requests - 404 Not Found Response