Guaraci WordPress Plugin issueshttps://git.hacklab.com.br/open-source/guaraci/-/issues2020-04-20T13:59:48Zhttps://git.hacklab.com.br/open-source/guaraci/-/issues/1Funcionalidade de contagem de shares no Facebook2020-04-20T13:59:48ZRafael Chaves FreitasFuncionalidade de contagem de shares no Facebook## Admin
- [x] 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}
}
- [x] **A)** criar função que verifica se a contagem de shares deve ser atualizada
- [x] **B)** criar função que atualiza a contagem de shares
- [x] **C)** criar função que retorna a contagem de shares
- [x] **D)** criar o endpoint
- [x] **E)** criar função que retorna a posição do post no ranking das postagens mais acessadas das últimas 24h
- [x] **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## Admin
- [x] 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}
}
- [x] **A)** criar função que verifica se a contagem de shares deve ser atualizada
- [x] **B)** criar função que atualiza a contagem de shares
- [x] **C)** criar função que retorna a contagem de shares
- [x] **D)** criar o endpoint
- [x] **E)** criar função que retorna a posição do post no ranking das postagens mais acessadas das últimas 24h
- [x] **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