PHPでgoogleindexingapiを実装する

この記事は約4分で読めます。
スポンサーリンク

以下のコードで登録されているか、登録をするかの機能を作れる。
これをベースにシステムに組み込んであげれば自動的に更新があれば登録するような機能も作れるだろう。

conposerで以下データを利用する
https://github.com/googleapis/google-api-php-client?hl=ja

GoogleのAPIサービスでauthキーを発行してダウンロードする。

<?php
if (filter_input(INPUT_POST, 'send')) {
    require_once __DIR__ . '/../vendor/autoload.php';
    $client = new Google_Client();
    $client->setAuthConfig(__DIR__ . '/../application/resounding-rune-xxxxxxxx.json');

    $client->addScope('https://www.googleapis.com/auth/indexing');

// Get a Guzzle HTTP Client
    $httpClient = $client->authorize();
    $endpoint = 'https://indexing.googleapis.com/v3/urlNotifications:publish';
    switch (filter_input(INPUT_POST, 'select')) {
        case 'update':
            // Define contents here. The structure of the content is described in the next step.
            $content = '{"url": "' . filter_input(INPUT_POST, 'url') . '","type": "URL_UPDATED"}';
            $response = $httpClient->post($endpoint, ['body' => $content]);
//URL_DELETED
            break;
        case 'check':
            // make an HTTP request
            $response = $httpClient->get('https://indexing.googleapis.com/v3/urlNotifications/metadata?url=' . urlencode(filter_input(INPUT_POST, 'url')));
            break;
        default:
            break;
    }

    $status_code = $response->getStatusCode();
    $contents = $response->getBody()->getContents();
}
?>
<html>
    <body>
        <form method="post">
            <label><input type="radio" name="select" value="check" checked="checked">URLが登録されているか確認する</label><br>
            <label><input type="radio" name="select" value="update">URLを登録するように送信する</label><br>
            URL:<input type="text" name="url"><br>
            <input type="submit" name="send" value="送信する">
        </form>
        <div>
            結果:<?php echo $status_code ?><br>
            <?php echo $contents ?>
        </div>

    </body>

</html>

参考
https://qiita.com/kaneko_tomo/items/f1754502004e7b9c4e90

コメント

タイトルとURLをコピーしました