fbpx Content API - Magtab

Suporte / Ajuda

Pesquise sua dúvida diretamente abaixo ou busque nos tópicos frequentes.

Documentação de APIs

Content API

É possível listar Landing Pages, Edições e Easy Stories no seu próprio web-site.

curl -X GET <https://app.magtab.com/api/v1/contents/> -H 'X-Api-Key: YOUR-API-KEY'

Nota:

Você irá precisar de uma chave de API para poder listar conteúdos, solicite sua chave com o nosso time em: suporte@magtab.com

Content type

Também é possível filtrar o tipo de conteúdo que será retornado na lista, através de um parâmetro GET. As opções são: article para as Landing Pages, ampstory para Easy Stories e issue para Edições. Repita o parâmetro type para incluir mais de um tipo. Os tipos padrão são article e issue. Para Easy Stories, é preciso especificar manualmente.

curl -X GET <https://app.magtab.com/api/v1/contents/?type=ampstory&type=article> -H 'X-Api-Key: YOUR-API-KEY'

Standalone content

Conteúdo Standalone são conteúdo que normalmente não devem ser listados publicamente, por exemplo uma página de coleta de Leads que será enviada por email, e portanto não são listados na API de conteúdo a não ser que solicitados. Para incluir na resposta, adicione o parâmetro GET include_standalone_content.

curl -X GET <https://app.magtab.com/api/v1/contents/?include_standalone_content> -H 'X-Api-Key: YOUR-API-KEY'

Response

A API retornará uma lista, e cada item na lista seguirá um padrão de chaves e valores, não importando se é uma Landing Page, Edição ou Easy Story:

...
{ 
	"title": "Content title", 
	"headline": "Content headline, if available", 
	"description": "Content description, if available", 
	"slug": "content-slug", 
	"date": "YYYY-MM-DD", 
	"updated_at": "YYYY-MM-DD HH:MM:SS", 
	"cover": "<http://url.to/cover-image.jpg>"
},
...

Nem todos tipos de conteúdo possuem cabeçalho (headline) e descrição (description). A capa (cover) é opcional também e virá com o valor em branco se existir. Você pode criar um link para os conteúdos da lista usando o slug (por exemplo: **https://conteudo.sua-url.com/content-slug**).

Nota sobre paginação

É possível controlar quantos itens por pagina a API retornará através do parâmetro GET page_size (um número inteiro positivo). Por padrão retorna-se 5.

É possível também dizer qual página retornar pelo parâmetro GET page, e além dele, pode-se usar os valores de next e prev como links para a próxima página e página anterior, respectivamente. Os valores retornarão null caso não exista uma página antes ou depois da atual.

{ 
	"count": 35, 
	"next": "<https://app.magtab.com/api/v1/contents/?page=2>", 
	"previous": null, 
	"results": [ ... ]
}

Exemplo

Considerando que quer listar Stories no seu website, será necessário carregar todas as Stories usando sua chave de API e, para cada Story, poderá carregá-la como um conteúdo em um iframe para exibi-la.

<!doctype html>
<html>
  <head>
    <script src="<https://code.jquery.com/jquery-3.4.1.min.js>"></script>
    <style>
    iframe {
      width: 360px;
      height: 540px;
      border: 0;
    }
    </style>
  </head>
  <body>
    <h1>Content loading sample</h1>

    <!-- Content container that will holder the loaded content. -->
    <ul id="contents"></ul>

    <!-- Iframe container for the individual story loaded. -->
    <iframe id="holder"></iframe>

    <script>
    $(document).ready(function() {
      $.ajax({
        url: '<https://app.magtab.com/api/v1/contents/?type=ampstory>',
        headers: {'X-Api-Key': 'YOUR-API-KEY'}, // Replace with your API-KEY
        success: function(data) {
          var container = $('#contents');
          $.each(data.results, function(index, item) {
            var url = '<https://revista.magtab.com/>' + item.slug + '/'; // Use your marketing url
            container.append('<li><a href="' + url + '">' + item.title + '</a></li>');
          });
        }
      });

      $(document).on('click', '#contents a', function(evt) {
        evt.preventDefault();
        var url = $(evt.target).attr('href');
        $('#holder').attr('src', url);
      });
    });
    </script>
  </body>
</html>

Não encontrou o
que procurava?

Converse conosco para receber uma resposta
personalizada ou para obter assistência.