openschoolbr.github.io icon indicating copy to clipboard operation
openschoolbr.github.io copied to clipboard

API Medium para últimos posts

Open kvnol opened this issue 7 years ago • 5 comments

Uma nova feature interessante para o site seria implementar a API do Medium para últimos posts, ainda vou desenhar essa tela, mas já abro essa issue para ver se alguém manja de como implementaríamos isso no Jekyll.

kvnol avatar Aug 08 '17 18:08 kvnol

@kvnol vou pesquisar os códigos deles e dou um retorno aqui. Mas caso alguém já saiba exatamente como fazer...

tadeubdev avatar Aug 08 '17 19:08 tadeubdev

Li umas coisas aqui e vi que o Medium tem uma API. Tem como pegar os posts do usuário, só que tem de usar um token de acesso e tudo mais. Eles também permitem acesso ao feed em XML.

Busquei no site do jekill uma forma de manipular os dados e encontrei essa doc (datafiles). Pelo que entendi só há como fazer isto com um arquivo interno. Não encontrei outra forma senão usando JS para buscar os dados (de uma das duas formas) e criar os elementos.

Estou saindo agora, mas mais tarde vou experimentar os códigos e tento enviar um PR.

tadeubdev avatar Aug 08 '17 20:08 tadeubdev

Massa, @tadeubarbosa. Aí sobe os arquivos no site, numa branch dev que eu implemento no layout. Ou se quiser implementar com um html teste, depois faço outros ajustes.

kvnol avatar Aug 08 '17 20:08 kvnol

Tentei fazer com o feed xml, mas não consegui buscar os dados. Tem a ver com controle de acesso do request, não entendo muito dessa parte. Acho que para fazer o que sugeriu, e que acho bacana, teremos de usar a API do próprio Medium. Lá terá como retornar um JSON.

O exemplo mostrado aqui:

GET https://api.medium.com/v1/users/{{userId}}/publications

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
  "data": [
    {
      "id": "b969ac62a46b",
      "name": "About Medium",
      "description": "What is this thing and how does it work?",
      "url": "https://medium.com/about",
      "imageUrl": "https://cdn-images-1.medium.com/fit/c/200/200/0*ae1jbP_od0W6EulE.jpeg"
    },
    {
      "id": "b45573563f5a",
      "name": "Developers",
      "description": "Medium’s Developer resources",
      "url": "https://medium.com/developers",
      "imageUrl": "https://cdn-images-1.medium.com/fit/c/200/200/1*[email protected]"
    }
  ]
}

EDIT: Tinha colocado os dados do método POST ao invés do GET.

tadeubdev avatar Aug 09 '17 03:08 tadeubdev

Interessante.

ghost avatar May 28 '19 03:05 ghost