くりゅぴ!

サーバーやWEB問題解決のメモから生活お得情報まで。未分類のものは執筆中

PHPでgoogleindexingapiを実装する

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

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

WEB開発

タグ:

WEB開発の最新記事

2020年7月13日
印刷時改ページをする
2020年7月10日
PHPのJsを外部ドメインより呼び出す
2020年7月10日
ブラウザにキャッシュさせない

コメントを残す

メールアドレスが公開されることはありません。