サポート » WordPress への貢献と参加 » AMPキャッシュの更新方法

  • masato01

    (@masato01)


    よろしくお願いいたします。
    知識は素人です。
    詳しいかたの知識をお借りできればと思います。

    ・やりたいこと:AMPのコンテンツの更新
    ・目的:カスタマイズをスマホですぐに確認したい
    ・できない原因:知識不足
    AMP コンテンツを更新する
    このサイトにやり方が書いてあるらしいのですが、素人には理解が難しく、なんとかこのサイトcache/”>AMPのCDNキャッシュをupdate-cacheを使って強制更新する方法。update-pingは廃止。
    を見つけ、途中まで進めました。

    的外れな質問をしているかもしれませんが、よろしくお願いいたします。
    上記サイトで、リクエストURLの作成する方法として
    https://<example-com&gt;.cdn.ampproject.org/update-cache/c/s/<example.com/article>?amp_action=flush&amp_ts=<ts_val>&amp_url_signature=<sig_val>
    この中にあるパラメータを挿入するよう指示があります。

    パラメータ
    ・<example-com>: ドメインをAMP Cache URL Formatでエンコードしたもの。単純には、”-“を”–“に、”.”を”-“に置き換えたものです。
    ・<example.com/article>: キャッシュを更新したいURL
    ・<ts_val>: unix time。リクエストを送る時間のプラマイ1分以内でないといけません。
    ・<sig_val>: RSA暗号鍵で作成したキー。

    出来上がったものの「/update-cacheから<ts_val>までの部分をsha256で暗号化」し「web safeなbase64でエンコード」と指示があります。

    SHA256ハッシュ生成ツール
    上記サイトで暗号化しました。

    これをBASE64 エンコード・デコード
    このサイトBASE64 エンコード・デコードでUTF-8でエンコードしました。

    ここまでもあっているのかどうか、最後まで作業を完了して確認できていないので分かっていません。

    ここからが素人には難解でして分からないことを箇条書きしますと

    ・歳以後にエンコードしたものはどこでどのように使用するのか?
    ・参考サイトでは、「phpで実装を行うと次のようになります。」とありますが、この記述はどこでどのように使用するのでしょうか?

    function generateURL( $page ) {
    $domain = ‘example.com’;
    $url = $domain . $page;

    $timestamp = time();
    $ampBaseUrl = “https://&#8221; . str_replace( array( ‘-‘, ‘.’ ), array(‘–‘, ‘-‘ ), $domain ) . “.cdn.ampproject.org”;
    $signatureUrl = ‘/update-cache/c/s/’ . $url . ‘?amp_action=flush&amp_ts=’ . $timestamp;

    // opening the private key
    $pkeyid = openssl_pkey_get_private( “file:///Users/boofoo/private-key.pem” );
    if ( $pkeyid == false ) {
    echo ‘could not open the private key.’;
    exit;
    }

    // generating the signature
    openssl_sign( $signatureUrl, $signature, $pkeyid, OPENSSL_ALGO_SHA256 );
    openssl_free_key( $pkeyid );

    // urlsafe base64 encoding
    $signature = $this->urlsafe_b64encode( $signature );

    // final url for updating
    $ampUrl = $ampBaseUrl . $signatureUrl . “&amp_url_signature=” . $signature;

    return $ampUrl;

    }

    function urlsafe_b64encode( $string ) {
    return str_replace( array( ‘+’, ‘/’, ‘=’ ), array( ‘-‘, ‘_’, ” ), base64_encode( $string ) );
    }

    上記コードに関して以下のような指示が続いています。
    ・「generateURL関数にページのパス ( /example_page.htmlなど) を渡すと、リクエストURLが返ります。」
    ここの理解は、Wordpressの場合 /example_public_htmlを挿入するという理解でよろしいでしょうか?

    ・「関数内の$domainは先に指定しておきます。」
    ここは、サイトドメイン(***.comのような)と理解して間違いないでしょうか?

    ・「$domainには他バイト文字は入っていないと仮定しています。」
    他のバイトとは文字のことでしょうか?例えば「-」などのことでしょうか?

    ・「あとは生成したURLに対して @file_get_contents( $url ); をすれば良いでしょう。」
    この作業もどこでどのように実行するのかが分からず。

    大変初歩的な質問ばかりで恐縮ではありますが、何卒ご教授よろしくお願いいたします。
    なお、何とかRSAキーの準備とアクセスまでは成功しております。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • munyagu

    (@munyagu)

    こんにちは

    AMP 自体については Google のフォーラムなどでご質問下さい。

    masato01

    (@masato01)

    申し訳ないです!ありがとうございます!ほかのサイトを当たってみます!

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「AMPキャッシュの更新方法」には新たに返信することはできません。