Atualizar o conteúdo de AMP

Use a solicitação update-cache para atualizar e remover o conteúdo do Google AMP Cache. Atualmente, update-cache só garante que o conteúdo seja atualizado dentro da max-age dele, que significa o período máximo que um recurso será considerado atualizado.

A solicitação update-cache exige que o proprietário do domínio assine as solicitações com uma chave RSA e que disponibilize a chave pública correspondente de um URL padrão no domínio de origem.

Você pode liberar qualquer versão em cache de um documento emitindo uma solicitação assinada para o cache de AMP. A solicitação update-cache é chamada neste endereço:

https://example-com.<cache.updateCacheApiDomainSuffix>/update-cache/c/s/example.com/article?amp_action=flush&amp_ts=<ts_val>&amp_url_signature=<sig_val>

Parâmetros

A solicitação update-cache exige os seguintes parâmetros e valores:

Parâmetros
example-com e example.com

Obrigatório

O nome de domínio especificado de acordo com os formatos usados no formato do URL de cache de AMP.
<cache.updateCacheApiDomainSuffix>

Obrigatório

O nome de domínio do cache de AMP. Consulte Chamar a solicitação update-cache para ver mais informações.
amp_ts=<ts_val>

Obrigatório

Esse parâmetro representa uma data e hora na era UNIX, que é usada para evitar ataques de repetição. O valor precisa ser a hora atual em segundos, limitando-se a um minuto antes ou depois do horário atual.
amp_url_signature=<sig_val>

Obrigatório

Esse parâmetro representa a assinatura RSA de todo o caminho da solicitação (consulte Gerar a chave RSA), incluindo amp_action e amp_ts, mas excluindo a assinatura em si.

Diretrizes

É preciso seguir as diretrizes de update-cache:

  • O nome do host do cache de AMP (cdn.ampproject.org) é excluído da assinatura para permitir o envio da mesma solicitação assinada para vários operadores do cache de AMP.
  • Para a verificação da assinatura, disponibilize a chave RSA pública em um local fixo no domínio do documento AMP. Para gerar a chave, consulte Gerar a chave RSA. Exemplo:
    https://example.com/.well-known/amphtml/apikey.pub
  • A chave pública não pode ser robotizada.
  • O URL precisa ser um HTTPS.
  • O domínio precisa ser exatamente aquele que você quer atualizar, não um sub ou superdomínio.
  • Publique a chave no formato PEM e a disponibilize com o tipo de conteúdo "text/plain".
  • O cache de AMP sempre busca a chave pública no mesmo domínio da solicitação, independentemente do domínio especificado pelo documento por meio da tag any rel=canonical. Se o domínio de origem disponibilizar um redirecionamento HTTP no local a ser liberado, somente o caminho solicitado será liberado do cache, e não o destino do redirecionamento.

Atualizar ou remover conteúdo

Você pode usar update-cache para atualizar ou remover permanentemente conteúdo do Google AMP Cache depois que esse conteúdo tiver sido removido da origem. Para atualizar ou remover um conteúdo, siga as etapas abaixo:

  1. Busque o seguinte arquivo:
    https://cdn.ampproject.org/caches.json
  2. Itere nas entradas de caches no arquivo JSON.
  3. Selecione os caches que você quer oferecer.
  4. Chame a solicitação update-cache usando o updateCacheApiDomainSuffix de cada entrada de cache.
  5. Crie os URLs usando o seguinte formato:
    https://example-com.<cache.updateCacheApiDomainSuffix>/update-cache/c/s/example.com/article?amp_action=flush&amp_ts=<ts_val>&amp_url_signature=<sig_val>

Gerar a chave RSA

O projeto OpenSSL fornece ferramentas de linha de comando para gerar e gerenciar chaves RSA assimétricas. Você também pode gerar chaves RSA e gerenciá-las de forma programática por meio da biblioteca OpenSSL ou de uma API de criptografia equivalente (node-crypto, NSS ou GnuTLS).

  1. Gere um par de chaves RSA no formato textual PEM, desta forma:
    openssl genrsa 2048 > private-key.pem
    openssl rsa -in private-key.pem -pubout >public-key.pem
  2. Publique a chave pública no domínio a ser atualizado no seguinte local:
    https://example.com/.well-known/amphtml/apikey.pub

    O URL precisa ser um HTTPS. A chave precisa ser de acesso público para um usuário anônimo.

  3. Use a chave privada para assinar a solicitação update-cache. Por exemplo:
    echo -n >url.txt '/update-cache/c/s/example.com/article?amp_action=flush&amp_ts=1484941817' && cat url.txt | openssl dgst -sha256 -sign private-key.pem >signature.bin

    A saída para signature.bin é uma assinatura RSA binária.

  4. Codifique a assinatura RSA binária usando a variante segura para a Web de base64.
  5. Anexe a assinatura RSA codificada em base64 ao URL usando o parâmetro de consulta amp_url_signature.
  6. Use a chave pública para verificar a assinatura:
    openssl dgst -sha256 -signature signature.bin -verify public-key.pem url.txt

Atualizar a chave RSA

Se você quiser atualizar sua chave RSA, poderá acessá-la por meio do link do cache de AMP, e o Google poderá rastreá-la em algumas horas. Este é o link do cache de AMP:

https://example-com.<cache.updateCacheApiDomainSuffix>/r/s/example.com/.well-known/amphtml/apikey.pub