Leitura Rápida
O Telegram oferece uma poderosa ferramenta de visualizar conteúdo chamada Leitura Rápida. O conteúdo visto desta forma é rapidamente carregado e retém o usuário no aplicativo, mantendo a pessoa engajada em seu canal ou grupo. Além disso, o acesso não sobrecarrega seu servidor, tudo fica hospedado no próprio Telegram. É uma forma grátis de ter muita gente lendo o seu conteúdo simultaneamente.
Porém, alguns pontos podem não agradar a todos.
Não exibe anúncios
O conteúdo exibido em leitura rápida não exibe anúncios, ou seja, tem o potencial de afetar a renda do produtor de conteúdo.
Visita não conta em Analytics
Caso o produtor de conteúdo utilize alguma ferramenta de Analytics, as leituras feitas pela Leitura Rápida não serão contabilizadas como visitas uma vez que o site em si não recebe visita alguma.
Falta de concursos
O Telegram não realiza concursos de templates de Leitura Rápida desde 2019. A consequência disso é que não é mais possível criar um template público para um site, que funcione automaticamente ao compartilhar um link. A leitura rápida de novos sites somente é possível com soluções personalizadas, logo, se o link for compartilhado sem os devidos ajustes, a opção de leitura rápida não será exibida.
Guia Rápido
Explico abaixo duas maneiras de criar a Leitura Rápida de qualquer conteúdo. A primeira permite maiores ajustes, porém, funciona exclusivamente em sites. Já a segunda, usando a api do Telegraph, permite a criação da Leitura Rápida de absolutamente qualquer conteúdo, mesmo que um site não exista.
Leitura Rápida usando Templates
Acesse o site instantview.telegram.org e autentique-se.
Clique em My Templates e cole a URL no campo que deseja criar o template.
Tela de criação de template de Leitura Rápida.
A tela de criação de um template é dividida em três janelas. A primeira é o site original, a do meio contém as regras de criação e a terceira traz a pré-visualização da Leitura Rápida.
Formato das regras
title
(obrigatório): Título da postagem;body
(obrigatório): Corpo da postagem;subtitle
: Subtítulo;kicker
: Primeira linha do template;author
: Autor(a);author_url
: Link do autor(a);published_date
: Data da publicação em formado Unix;description
: Descrição curta exibida na pré-visualização;image_url
: Link da imagem exibida na pré-visualização;document_url
: Link do documento exibido na pré-visualização;site_name
: Nome do site exibido na pré-visualização;channel
: Canal do autor no formato@canal
;cover
: Capa da página (imagem, vídeo, mapa).
Exemplo de regra
1
2
3
4
5
6
7
8
9
~version: "2.1"
title: $body//h1[1]
body: //*[contains(@class, "post-content")]
cover: //img[has-class("lazyloaded")]
@set_attr("src", @data-src): $body//img[@data-src]
channel: "@GabRF"
site_name: "blog.GabRF.com"
@split_parent: //a/img
@split_parent: //p/img
- O título será o conteúdo do primeiro cabeçalho do tipo
h1
; - O corpo será o conteúdo da classe
post-content
; - A capa será a imagem de classe
lazyloaded
; - No corpo o parâmetro
src
(usado em imagens) será preenchido com o valor da tagdata-src
; - Canal exibido no topo, ao lado do botão
Join
; - Nome do site exibido na pré-visualização;
- Duas regras que tratam erros do tipo
Element <img> is not supported in <a>
1.
Salvar e Utilizar
Após criar a regra do template, clique em Mark as Checked
para o Telegram salvar as mudanças. Feito isto, clique em View in Telegram
e compartilhe em suas Mensagens Salvas. A intenção neste passo é simplesmente o de copiar o link para obter o identificador de template.
O link gerado terá o seguinte formato: https://t.me/iv?url=<URL_DO_POST>%2F&rhash=<IDENTIFICADOR_DO_TEMPLATE>
, composto por:
URL_DO_POST
: Link direto para o conteúdo daquele domínio (em formato de URL);IDENTIFICADOR_DO_TEMPLATE
: Valor fixo correspondente ao template criado.
No exemplo, o link gerado foi o https://t.me/iv?url=https%3A%2F%2Fblog.gabrf.com%2Fposts%2FFimDoRastreioBot%2F&rhash=36c1a8c5edccc1
. Repita o teste em outros links do mesmo site para confirmar se o template realmente está bom. O ideal é testar ao menos 10 links diferentes.
É importante saber que o identificador de template é fixo. Ou seja, é possível atualizar as regras a qualquer momento e isto irá afetar a Leitura Rápida de todo aquele site, tanto as futuras quanto as já enviadas. O valor de identificador é único, vinculado à sua conta do Telegram. Logo, se duas ou mais pessoas criarem regras para o mesmo site, cada pessoa terá o seu identificador.
Exemplo de função em python
1
2
3
4
5
6
7
import urllib # pip install urllib
rhash = '36c1a8c5edccc1' # Identificador do Template
def get_iv_link(link):
iv_link = f'https://t.me/iv?url={urllib.parse.quote_plus(link)}&rhash={rhash}'
return iv_link
Esta função recebe a string https://blog.gabrf.com/posts/FimDoRastreioBot/
e retorna o link com Leitura Rápida: https://t.me/iv?url=https%3A%2F%2Fblog.gabrf.com%2Fposts%2FFimDoRastreioBot%2F&rhash=36c1a8c5edccc1
.
Leitura Rápida via API Telegraph
O Telegram possui uma plataforma de publicação de textos chamada Telegraph, que pode ser usada diretamente pelo site ou via API pública. Todo texto criado na plataforma automaticamente tem o recurso de Leitura Rápida habilitado, podendo, portanto, ser uma solução para quem não possui um site ou possui alguma dificuldade em utilizar templates, como explicado anteriormente2.
Autenticação
O primeiro passo é criar a sua chave de acesso. Para isto, acesse a url abaixo substituindo os valores <NOME_CURTO>
e <NOME>
pelo que julgar adequado:
1
https://api.telegra.ph/createAccount?short_name=<NOME_CURTO>&author_name=<NOME>
O resultado deverá ser parecido com este:
1
2
3
4
5
6
7
8
9
10
{
"ok":true,
"result":{
"short_name":"Sandbox",
"author_name":"Anonymous",
"author_url":"",
"access_token":"d3b25feccb89e508a9114afb82aa421fe2a9712b963b387cc5ad71e58722",
"auth_url":"https:\/\/edit.telegra.ph\/auth\/d3b25feccb89e508a9114afb82aa421fe2a9712b963b387cc5ad71e58722"
}
}
O valor de access_token
é o que será usado daqui em diante em uma variável de mesmo nome.
Este valor não deve ser compartilhado com ninguém. Deve ser guardado como uma senha.
Instalação da biblioteca em Python
Instale a biblioteca conforme o seu cenário de configuração. O método mais simples seria usando pip install
.
1
2
3
$ python3 -m pip install telegraph
# Alternativamente, opção assíncrona
$ python3 -m pip install 'telegraph[aio]'
Exemplo de uso da biblioteca em Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import telegraph
def create_telegraph_post(titulo, imagem, subtitulo, texto, link, autor):
telegraph_auth = telegraph.Telegraph(
access_token=access_token
)
response = telegraph_auth.create_page(
f'{titulo}',
html_content=(
f'<img src="{imagem}">' +
f'<h4>{subtitulo}</h4><br><br>' +
f'{texto}<br><br>' +
f'<a href="{link}">Leia a matéria original</a>'
),
author_name=f'{autor}'
)
return data
A função create_telegraph_post
recebe como parâmetros o título, a imagem, um subtítulo, o texto completo, o link para o site e o nome do autor respectivamente. A resposta será:
1
2
3
4
5
6
7
8
9
{
'path': 'Título-10-22-5',
'url': 'https://telegra.ph/Título-10-22-5',
'title': 'Título',
'description': '',
'author_name': 'Autor',
'views': 0,
'can_edit': True
}
Pronto. Agora basta compartilhar o link presente em url
e a função de Leitura Rápida irá aparecer.
Link do Telegraph com Leitura Rápida.
Exemplo de texto visto em modo de Leitura Rápida.
Envio de imagens para o Telegraph
Explicação bônus, método não oficial!
Há casos em que a exibição de imagem não funciona, pois o site que hospeda a imagem pode colocar algumas proteções que a impeçam de serem compartilhadas em sites terceiros. A solução para tal caso seria o de enviar a imagem para o Telegraph, porém, este método não está oficialmente na API. Use-o sabendo que é uma gambiarra!
1
2
3
4
5
6
7
8
9
10
11
12
import io
import requests
import telegraph
def upload_telegraph_image(image):
telegraph_auth = telegraph.Telegraph(
access_token=access_token
)
file = requests.get(image)
inmemoryfile = io.BytesIO(file.content)
path = telegraph_auth.upload_file(inmemoryfile)
return f'https://telegra.ph{path[0]["src"]}'
A função upload_telegraph_image
fará o upload da imagem contida na URL para o Telegragh, criando um novo endereço para visualização, exemplo:
1
2
3
if __name__ == "__main__":
data = upload_telegraph_image('https://instantview.telegram.org/file/811140067/3/6oS3A6aSzxU.261217/1d6f75b81ed67c983a')
print(data)
Cuja resposta será:
1
https://telegra.ph/file/2abe611003a6c9aa2f5f4.png
Que é a imagem oficial do Telegram usando no exemplo acima.
Erro muito comum. Acontece quando elementos estão aninhados e não são suportados pela Leitura Rápida. A regra
split_parent
retira esse aninhamento, resolvendo o problema. Leia mais no site oficial. ↩Há casos, por exemplo, em que um site não pode ser acessado de determinados países, impedindo a solução que usa templates de funcionar. Usando a opção via Telegraph é possível capturar os dados do site em seu próprio computador, evitando assim o problema de bloqueio por geo-localização. ↩