Atualizar o conteúdo de AMP

Use a solicitação update-cache para atualizar e remover conteúdo do Cache de AMP do Google. Atualmente, update-cache só garante que o conteúdo seja atualizado dentro do próprio max-age, que é o período máximo em 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 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 requer 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 do 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 um carimbo de data/hora na época do UNIX, que é usado para evitar ataques de repetição(link em inglês). 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, incluindo amp_action e amp_ts, mas excluindo a própria assinatura. Consulte Gerar a Chave RSA.

Diretrizes

Siga 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 de qualquer tag 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 Cache de AMP do Google 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ê pretende oferecer.
  4. Chame a solicitação update-cache usando o updateCacheApiDomainSuffix de cada entrada 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 (link em inglês) 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 estar publicamente acessível a usuários anônimos.

  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