Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
G Guaraci WordPress Plugin
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1
    • Issues 1
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • open-source
  • Guaraci WordPress Plugin
  • Issues
  • #1

Closed
Open
Created Apr 16, 2020 by Rafael Chaves Freitas@rafaelOwner7 of 9 tasks completed7/9 tasks

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
Edited Apr 17, 2020 by Ghost User
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking