Funcionalidade de contagem de shares no Facebook
Admin
- página de configuração da chave do App do FB
- aumentando o número de acessos por hora
- criar página no admin para que usuários do wordpress possam vincular suas contas do FB ao App do FB
Funcionalidade:
para não termos problema com o cache de página, manteremos a atualização do valor sendo feito por ajax, porém utilizaremos um endpoint feito por nós (https://developer.wordpress.org/rest-api/extending-the-rest-api/adding-custom-endpoints/), que controlará as requisições para o facebook.
GET /wp-json/facebook-shares/{post_id}/
para evitar cache de página superior a 1h, sempre enviar como parametro o timestamp da última hora (em js algo como (new Date).toJSON().substr(0,13)
)
GET /wp-json/facebook-shares/{post_id}/?ts=2020-04-16T14
o número de shares será salvo como metadado do post, juntamente com a data da última atualização. salvar um objeto assim:
{
shares: {número de shares},
updated_timestamp: {timestamp da última atualização}
}
- A) criar função que verifica se a contagem de shares deve ser atualizada
- B) criar função que atualiza a contagem de shares
- C) criar função que retorna a contagem de shares
- D) criar o endpoint
- E) criar função que retorna a posição do post no ranking das postagens mais acessadas das últimas 24h
- F) criar função que retorna o intervalo de atualização do post, dado o post_id
A) verificação se o número de shares deve ser atualizado
- se o metadado não existe ou se o metadado existe e foi atualizado a mais tempo do que o intervalo (F), retorna true
B) atualização da contagem
- verificar se a resposta do facebook é válida antes de atualizar.
D) O endpoint basicamente vai fazer o seguinte:
// verificar se a contagem de deve ser atualizada
if ( A() )
// mandar atualizar a contagem
B()
}
// retorna a contagem
return C()
E) função que retorna o ranking
- usar a função do ajax-pv do guaraci pedindo o ID dos 500 mais acessados e guardando esse resultado cacheado por 1h
F) O intervalo de atualizaçào não deve ser inferior a 1h e deve serguir a seguinte regra:
intervalo - no ranking das mais lidas - posts/hora - soma total por hora
a cada 1h - de 1 a 100 - 100 - 100
a cada 2h - de 100 a 200 - 50 - 150
a cada 4h - de 200 a 300 - 25 - 175
a cada 8h - de 300 a 500 - 25 - 200
a cada 24h - os demais posts