Skip to content

Variáveis

Juliano Santos edited this page Mar 20, 2020 · 54 revisions

A API do Telegram suporta uma gama de tipos e estruturas de dados que são passados na chamada de seus métodos, porém apenas dois tipos de dados são suportados pelo interpretador de comandos BASH. São eles: integer e string. Para filtrar os dados e garantir que tipos incompatíveis não sejam enviados aos métodos, foram criadas expressões regulares para validação dos mesmos. O valor é verificado com base no tipo suportado pelo parâmetro ao qual foi passado, caso seja incompatível a função trata o erro de sintaxe e finaliza o script/thread.

O ShellBot possui variáveis com nomes reservados, nas quais são armazenados os valores extraídos dos objetos json sempre que o método ShellBot.getUpdates é chamado. A nomenclatura de cada variável é composta pelo prefixo do objeto a qual pertence, seguido pelo nome do campo. Utiliza-se o caractere _ (underscore) na composição, expressando de forma sucinta a estrutura dos dados.

Estrutura
objeto_campo

Considere a variável message_text que contém um tipo de dado string com o corpo da mensagem enviada por um usuário ou bot.

Variável
message_text
Objeto Campo
message text

Mais de um objeto pode compor a nomenclatura da variável e expressar uma sub-estrutura de campos.

Exemplo:

A variável message_reply_to_message_text contém o texto original da mensagem respondida. Onde o objeto message contém um campo chamado reply_to_message cujo tipo é message e que possui um campo text.

Variável
message_reply_to_message_text
Objeto Campo Campo
message reply_to_message text

Nota: A nomenclatura é única e contém um tipo de dado a ser retornado. Caso tente acessar o seu valor sem a mesma ter sido inicializada, nenhum valor será retornado.

Array indexado

O valor de uma variável pode ser acessado utilizando apenas o seu identificador (nome).

Exemplo:

echo $message_text

Se for especificado o número máximo de atualizações a serem retornadas na chamada do método ShellBot.getUpdates através do parâmetro -l, --limit <valor> e se limit for maior que 1, o valor da variável deverá ser acessado por indexação utilizando a expansão de variável.

Exemplo:

ShellBot.getUpdates --limit 3

echo ${message_text[0]}    # mensagem 1
echo ${message_text[1]}    # mensagem 2
echo ${message_text[2]}    # mensagem 3

Use o método ShellBot.ListUpdates para obter os índices do array.

Nota: Por padrão somente as variáveis que possuem objetos atualizados são instanciadas.

Array de Array

Um Array de Array ou Matriz multidimensional é um array com duas ou mais dimensões contendo um conjunto de elementos. O Bash não oferece suporte a esse tipo de array, por essa razão os elementos são agrupados no mesmo índice da variável e separados pelo delimitador ' ' (espaço).

Exemplo:

variavel = 'item1 item2 item3 item4'

Nas variáveis a seguir estão armazenados um conjunto de elementos que representam as propriedades de um arquivo de imagem, são elas: id file_size height width.

# Os ID's das imagens disponíveis
message_photo_file_id = 'AgADAQAD4KcxG0_l6UU3aWyr8yZ5KhcT9y8ABLF5dSD8IsvVgMgAAgI AgADAQAD4KcxG0_l6UU3aZyr8ym5KhcT9y8ABIQ7q5EOmrnYgcgAAgI AgADAQAD4KcxG0_l6UU3aWyr8ym5KhcT9y8ABE86mx5aXfQwgsgAAgI AgADAQAD4KcxG0_l6UU3aUyr8ym5KhcT9y8ABPte4YhC8Fzwf8gAAgI'

# Os Tamanhos dos arquivos
message_photo_file_size = '1478 21417 100945 222230'

# Dimensões
message_photo_height = '51 180 450 720'
message_photo_width = '90 320 800 1280'

Nota: A posição do elemento determina a qual item pertence.

Exemplo:

Imprimindo as propriedades da imagem com a menor dimensão.

echo $message_photo_file_id | cut -d' ' -f1     
echo $message_photo_file_size | cut -d' ' -f1   
echo $message_photo_height | cut -d' ' -f1      
echo $message_photo_width | cut -d' ' -f1       

saida:

AgADAQAD4KcxG0_l6UU3aWyr8yZ5KhcT9y8ABLF5dSD8IsvVgMgAAgI      # id
1478                                                         # tamanho
51                                                           # altura
90                                                           # largura

Monitor

Após a chamada do método ShellBot.getUpdates as atualizações disponíveis são lidas, os objetos da mensagem são tratados e as variáveis são carregadas na memória; Porém todo o processo ocorre em modo silencioso (não verboso). O modo monitor quando ativado exibe na saída padrão as variáveis inicializadas por mensagem e seus respectivos valores. Para ativar use o parâmetro -m ou --monitor no método ShellBot.init.

Exemplo:

ShellBot.init --token <seu_token> --monitor

Nota: Por padrão o bot só tem acesso as mensagens enviadas em grupos/canais se as mesmas contiverem comandos. Os comandos são precedidos pelo caractere / (barra). Exemplo: /comando1. Para ter acesso irrestrito a todas as mensagens é necessário que o bot seja administrador.

Saída padrão (modo monitor) após o envio de uma mensagem em um grupo no qual o bot é membro. As informações são listadas no formato variavel = 'valor'.

=================== MONITOR ===================
Data: sáb set 16 09:06:31 -03 2017
Script: meu_bot.sh
Bot (nome): ▪️❌▫️
Bot (usuario): beta_bot
Bot (id): 123456789
-----------------------------------------------
Mensagem: 1
-----------------------------------------------
update_id = '870716554'
message_date = '1505563591'
message_message_id = '29159'
message_text = '/comando_teste'
message_chat_all_members_are_administrators = 'false'
message_chat_id = '-1122334455'
message_chat_title = 'grupoteste'
message_chat_type = 'group'
message_entities_length = '14'
message_entities_offset = '0'
message_entities_type = 'bot_command'
message_from_first_name = 'SHAMAN'
message_from_id = '11443322'
message_from_is_bot = 'false'
message_from_language_code = 'pt-BR'
message_from_username = 'x_SHAMAN_x'

Nota: Use essa opção para monitorar eventos, visualizar as variáveis inicializadas pela API e para facilitar o desenvolvimento do bot em um cenário de teste.

Objeto Tipo Descrição
update_id Integer O identificador exclusivo da atualização. Os identificadores de atualização começam de um certo número positivo e aumentam sequencialmente. Esta identificação torna-se especialmente útil se você estiver usando o Webhooks, pois permite ignorar as atualizações repetidas ou restaurar a sequência de atualização correta, caso elas saem de ordem.
message Message Opcional. Nova mensagem recebida de qualquer tipo - texto, foto, etiqueta, etc.
edited_message Message Opcional. Nova versão de uma mensagem conhecida pelo bot e editada
channel_post Message Opcional. Novo canal de entrada de qualquer tipo - texto, foto, etiqueta, etc.
edited_channel_post Message Opcional. Nova versão de uma publicação de canal conhecida pelo bot e editada
inline_query InlineQuery Opcional. Nova consulta inline recebida.
chosen_inline_result ChosenInlineResult Opcional. O resultado de uma consulta inline que foi escolhida por um usuário e enviada ao parceiro de bate-papo.
callback_query CallbackQuery Opcional. Nova consulta de chamada de retorno.

Contém informações sobre o status atual de um webhook.

Campo Tipo Descrição
url String Webhook URL, pode estar vazio se webhook não estiver configurado.
has_custom_certificate Boolean True, se um certificado personalizado fosse fornecido para verificações de certificados webhook.
pending_update_count Integer Número de atualizações aguardando entrega.
last_error_date Integer Opcional. Tempo Unix para o erro mais recente que aconteceu ao tentar entregar uma atualização via webhook.
last_error_message String Opcional. Mensagem de erro em formato legível para humanos para o erro mais recente que aconteceu ao tentar enviar uma atualização via webhook.
max_connections Integer Opcional. Número máximo permitido de conexões HTTPS simultâneas para o webhook para atualização de entrega.
allowed_updates Array de String Opcional. Uma lista de tipos de atualização em que o bot está inscrito. Predefinições para todos os tipos de atualização.

Tipos disponíveis

Todos os tipos utilizados nas respostas da API Bot são representados como objetos JSON.

Os campos opcionais podem não ser devolvidos quando irrelevantes.

Este objeto representa um usuário ou bot de Telegram.

Campo Tipo Descrição
id Integer Identificador exclusivo para este usuário ou bot
is_bot Boolean True, se esse usuário é um bot
first_name String Nome do usuário ou do bot
last_name String Opcional. Sobrenome do usuário ou do bot
username String Opcional. Nome de usuário ou bot
language_code String Opcional. Tag de idioma IETF do idioma do usuário

Este objeto representa um bate-papo.

Campo Tipo Descrição
id Integer Identificador exclusivo para este bate-papo. Este número pode ser superior a 32 bits e algumas linguagens de programação podem ter dificuldade / defeitos silenciosos na interpretação. Mas é menor do que 52 bits, então um tipo de flutuador inteiro ou de precisão dupla de 64 bits assinado é seguro para armazenar esse identificador.
type String Tipo de bate-papo, pode ser "private", "group", "supergroup" ou "channel"
title String Opcional. Título para supergrupos, canais e grupos.
username String Opcional. Nome de usuário para bate-papo privado, supergrupos e canais, se disponível
first_name String Opcional. Primeiro nome da outra parte em um bate-papo privado
last_name String Opcional. Segundo nome da outra parte em um bate-papo privado
all_members_are_administrators Boolean Opcional. True se um grupo tiver 'Todos os membros são administradores' habilitado.
photo ChatPhoto Opcional. Foto de bate-papo. Retorna apenas no ShellBot.getChat.
description String Opcional. Descrição para supergrupos, chats e canais. Retorna apenas no ShellBot.getChat
invite_link String Opcional. Link de convidado de bate-papo para supergrupos e canais. Retorna apenas no ShellBot.getChat
pinned_message Message Opcional. Mensagem fixa para supergrupos. Retorna apenas no ShellBot.getChat

Este objeto representa um mensagem.

Campo Tipo Descrição
message_id Integer Identificador de mensagem exclusivo dentro deste bate-papo
from User Opcional. Remetente, vazio para mensagens enviadas para canais
date Integer Data em que a mensagem foi enviada no tempo do Unix
chat Chat Messagem a qual bate-papo pertence
forward_from User Opcional. Para mensagens encaminhadas o remetente da mensagem original
forward_from_chat Chat Opcional. Para as mensagens encaminhadas a partir de canais, informações sobre o canal original
forward_from_message_id Integer Opcional. Para mensagens encaminhadas a partir de canais, identificador da mensagem original
forward_signature String Opcional. Para mensagens encaminhadas a partir de canais, assinatura do autor de postagem se presente
forward_date Integer Opcional. Para as mensagens encaminhadas, data em que a mensagem original foi enviada no tempo do Unix
reply_to_message Message Opcional. Para respostas, a mensagem original. Observe que o objeto Mensagem neste campo não conterá mais campos reply_to_message mesmo se ele próprio for uma resposta.
edit_date Integer Opcional. Data em que a última mensagem foi editada no tempo do Unix.
author_signature String Opcional. Assinatura do autor do post para mensagens nos canais.
text String Opcional. Para mensagens de texto, o texto UTF-8 da mensagem, de 0 a 4096 caracteres.
entities Array de MessageEntity Opcional. Para mensagens de texto, entidades especiais como nomes de usuário, URLs, comandos de bot e etc que aparecem no texto.
audio Audio Opcional. Mensagem é um arquivo de áudio, informações sobre o arquivo.
document Document Opcional. A mensagem é um arquivo geral, informações sobre o arquivo.
game Game Opcional. A mensagem é um jogo.
photo Array de PhotoSize Optional. Message is a photo, available sizes of the photo.
sticker Sticker Opcional. A mensagem é um adesivo, informações sobre o adesivo.
video Video Opcional. Mensagem é um vídeo, informações sobre o vídeo.
voice Voice Opcional. Mensagem é uma mensagem de voz, informações sobre o arquivo.
video_note VideoNote Opcional. A mensagem é uma nota de vídeo, informações sobre a mensagem de vídeo.
new_chat_members Array de User Opcional. Novos membros que foram adicionados ao grupo ou ao supergrupo e informações sobre eles (o próprio bot pode ser um desses membros)
caption String Opcional. Legenda do documento, foto ou vídeo, 0 a 200 caracteres.
contact Contact Opcional. A mensagem é um contato compartilhado.
location Location Opcional. Mensagem é uma localização compartilhada.
venue Venue Opcional. A mensagem é um local.
new_chat_member User Opcional. Um novo membro foi adicionado ao grupo, informações sobre eles (este membro pode ser o próprio bot).
left_chat_member User Opcional. Um membro foi removido do grupo, informações sobre eles (este membro pode ser o próprio bot).
new_chat_title String Opcional. Um título de bate-papo foi alterado para esse valor.
new_chat_photo Array de PhotoSize Opcional. Uma foto de bate-papo foi alterada para esse valor.
delete_chat_photo True Opcional. Mensagem de serviço: a foto do bate-papo foi excluída.
group_chat_created True Opcional. Mensagem de serviço: o grupo foi criado.
supergroup_chat_created True Opcional. Mensagem de serviço: o supergrupo foi criado. Este campo não pode ser recebido em uma mensagem que vem através de atualizações, porque o bot não pode ser um membro de um supergrupo quando ele é criado. Só pode ser encontrado em reply_to_message se alguém responder a uma primeira mensagem em um supergrupo criado diretamente.
channel_chat_created True Opcional. Mensagem de serviço: o canal foi criado. Este campo não pode ser recebido em uma mensagem que vem por meio de atualizações, porque o bot não pode ser um membro de um canal quando ele é criado. Só pode ser encontrado em reply_to_message se alguém responder a uma primeira mensagem em um canal.
migrate_to_chat_id Integer Opcional. O grupo foi migrado para um supergrupo com o identificador especificado. Este número pode ser superior a 32 bits e algumas linguagens de programação podem ter dificuldade / defeitos silenciosos na interpretação. Mas é menor do que 52 bits, então um tipo de flutuador inteiro ou de precisão dupla de 64 bits assinado é seguro para armazenar esse identificador.
migrate_from_chat_id Integer Opcional. O supergrupo foi migrado de um grupo com o identificador especificado. Este número pode ser superior a 32 bits e algumas linguagens de programação podem ter dificuldade / defeitos silenciosos na interpretação. Mas é menor do que 52 bits, então um tipo de flutuador inteiro ou de precisão dupla de 64 bits assinado é seguro para armazenar esse identificador.
pinned_message Message Opcional. A mensagem especificada foi fixada. Observe que o objeto Mensagem neste campo não conterá mais campos reply_to_message, mesmo que ele seja uma resposta.

Este objeto representa uma entidade especial em uma mensagem de texto. Por exemplo, hashtags, nomes de usuários, URLs e etc.

Campo Tipo Descrição
type String Tipo da entidade. Pode ser mencionado hashtag, bot_command, url, email, bold (bold text), italic (italic text), code (monowidth string), pre (monowidth block), text_link (para textos de url clicaveis), text_mention (para usuários sem username), cashtag e photo_number.
offset Integer Offset em unidades de código UTF-16 para o início da entidade.
length Integer Comprimento da entidade em unidades de código UTF-16.
url String Opcional. Somente para "texto_link", url que será aberto após o usuário tocar no texto.
user User Opcional. Apenas para "text_mention". O usuário mencionado.

Este objeto representa um tamanho de uma foto ou uma miniatura de file/Sticker.

Campo Tipo Descrição
file_id String Identificador único para o arquivo.
width Integer Largura da foto.
height Integer Altura da foto.
file_size Integer Opcional. Tamanho do arquivo.

Este objeto representa um arquivo de áudio a ser tratado como música pelos clientes Telegram.

Campo Tipo Descrição
file_id String Identificador único para o arquivo.
duration Integer Duração do áudio em segundos conforme definido pelo remetente.
performer String Opcional. Performer do áudio conforme definido pelo remetente ou por tags de áudio.
title String Opcional. Título do áudio conforme definido pelo remetente ou por tags de áudio.
mime_type String Opcional. Tipo MIME do arquivo conforme definido pelo remetente.
file_size Integer Opcional. Tamanho do arquivo.

Este objeto representa um arquivo geral (em oposição a fotos, mensagens de voz e arquivos de áudio).

Campo Tipo Descrição
file_id String Identificador único para o arquivo.
thumb PhotoSize Opcional. Miniatura do documento conforme definido pelo remetente.
file_name String Opcional. Nome do arquivo original conforme definido pelo remetente.
mime_type String Opcional. Tipo MIME do arquivo conforme definido pelo remetente.
file_size Integer Opcional. Tamanho do arquivo.

Este objeto representa um arquivo de vídeo.

Campo Tipo Descrição
file_id String Identificador único para o arquivo.
width Integer Largura da video.
height Integer Altura da video.
duration Integer Duração do vídeo em segundos conforme definido pelo remetente.
thumb PhotoSize Opcional. Miniatura do vídeo
mime_type String Opcional. Tipo MIME do arquivo conforme definido pelo remetente.
file_size Integer Opcional. Tamanho do arquivo.

Este objeto representa uma nota de voz.

Campo Tipo Descrição
file_id String Identificador único para o arquivo.
duration Integer Duração do audio em segundos conforme definido pelo remetente.
mime_type String Opcional. Tipo MIME do arquivo conforme definido pelo remetente.
file_size Integer Opcional. Tamanho do arquivo.

Este objeto representa uma mensagem de vídeo (disponível nos aplicativos Telegram como v.4.0).

Campo Tipo Descrição
file_id String Identificador único para o arquivo.
length Integer Largura e altura do vídeo, conforme definido pelo remetente.
duration Integer Duração do video em segundos conforme definido pelo remetente.
thumb PhotoSize Opcional. Miniatura do vídeo
file_size Integer Opcional. Tamanho do arquivo.

Este objeto representa um contato de telefone.

Campo Tipo Descrição
phone_number String Número de telefone do contato.
first_name String Primeiro nome do contato.
last_name String Opcional. Segundo nome do contato.
user_id Integer Opcional. Identificador de usuário do contato no Telegram.

Este objeto representa um ponto no mapa.

Campo Tipo Descrição
longitude Float Longitude conforme definido pelo remetente.
latitude Float Latitude conforme definida pelo remetente.

Este objeto representa um local.

Campo Tipo Descrição
location Location Localização do local.
title String Nome do local.
address String Endereço do local.
foursquare_id String Opcional. Identificador do quadrante do local.

Este objeto representa as imagens de perfil de um usuário.

Campo Tipo Descrição
total_count Integer Número total de imagens de perfil que o usuário alvo possui.
photos Array de Array de PhotoSize Imagens de perfil solicitadas (em até 4 tamanhos cada).

Este objeto representa um arquivo pronto para ser baixado. O arquivo pode ser baixado através do link https://api.telegram.org/file/bot<_token_>/<file_path>. É garantido que o link será válido por pelo menos 1 hora. Quando o link expira, um novo pode ser solicitado chamando ShellBot.getFile.

O tamanho máximo do arquivo para download é de 20 MB.

Campo Tipo Descrição
file_id String Identificador exclusivo para este arquivo.
file_size Integer Opcional. Tamanho do arquivo, se conhecido.
file_path String Opcional. Caminho do arquivo. Use https://api.telegram.org/file/bot<token>/<file_path> para obter o arquivo.

Este objeto representa um teclado personalizado com opções de resposta.

Campo Tipo Descrição
keyboard Array do Array de KeyboardButton Array de linhas de botão, cada uma representada por uma matriz de objetos KeyboardButton.
resize_keyboard Boolean Opcional. Solicita aos clientes que redimensionem o teclado verticalmente para um ajuste ótimo (por exemplo, reduz o teclado se houver apenas duas linhas de botões). O padrão é falso, caso em que o teclado personalizado é sempre da mesma altura que o teclado padrão do aplicativo.
one_time_keyboard Boolean Opcional. Solicita aos clientes que escondam o teclado assim que ele foi usado. O teclado ainda estará disponível, mas os clientes exibirão automaticamente o teclado de letras usual no chat - o usuário pode pressionar um botão especial no campo de entrada para ver novamente o teclado personalizado. Por padrão, é falso.
selective Boolean Opcional. Use este parâmetro se desejar mostrar o teclado apenas para usuários específicos. Alvos: 1) usuários que são mencionados no texto do objeto Mensagem; 2) se a mensagem do bot for uma resposta (tenha reply_to_message_id), remetente da mensagem original. Exemplo: um usuário solicita mudar o idioma do bot, o bot responde ao pedido com um teclado para selecionar o novo idioma. Outros usuários do grupo não vêem o teclado.

Este objeto representa um botão do teclado de resposta. Para botões de texto simples A seqüência pode ser usada em vez deste objeto para especificar o texto do botão. Os campos opcionais são mutuamente exclusivos.

Campo Tipo Descrição
text String Texto do botão. Se nenhum dos campos opcionais forem usados, ele será enviado ao bot como uma mensagem quando o botão for pressionado.
request_contact Boolean Opcional. Se for true, o número de telefone do usuário será enviado como contato quando o botão for pressionado. Disponível apenas em bate-papo privado.
request_location Boolean Opcional. Se for true, a localização atual do usuário será enviada quando o botão for pressionado. Disponível apenas em bate-papo privado.

Nota: as opções de solicitação de contato e de localização de solicitação só funcionam nas versões Telegram lançadas após 9 de abril de 2016. Os clientes mais velhos as ignorarão.

Ao receber uma mensagem com este objeto, os clientes do Telegram removerão o teclado personalizado atual e exibirão o teclado-letra padrão. Por padrão, os teclados personalizados são exibidos até que um novo teclado seja enviado por um bot. Uma exceção é feita para teclados únicos que estão escondidos imediatamente após o usuário pressionar um botão.

Campo Tipo Descrição
remove_keyboard True Solicita aos clientes que removam o teclado personalizado (o usuário não poderá convocar esse teclado, se você quiser esconder o teclado da visão, mas mantê-lo acessível, use one_time_keyboard em ReplyKeyboardMarkup.
selective Boolean Opcional. Use este parâmetro se desejar remover o teclado apenas para usuários específicos. Alvos: 1) usuários que são mencionados no texto do objeto Message; 2) se a mensagem do bot for uma resposta (tenha reply_to_message_id), remetente da mensagem original. Exemplo: Um usuário vota em uma enquete, o bot retorna a mensagem de confirmação em resposta à votação e remove o teclado para esse usuário, enquanto ainda mostra o teclado com opções de pesquisa para usuários que ainda não votaram.

Este objeto representa um inline keyboard que aparece ao lado da mensagem a que pertence.

Campo Tipo Descrição
inline_keyboard Array de Array de InlineKeyboardButton Array de linhas de botão, cada uma representada por uma matriz de InlineKeyboardButton.

Nota: Isso só funcionará nas versões Telegram lançadas após 9 de abril de 2016. Os clientes mais antigos exibirão uma mensagem não suportada.

Este objeto representa um botão de um teclado em linha. Você deve usar exatamente um dos campos opcionais.

Campo Tipo Descrição
text String Texto no botão.
url String Opcional. Url HTTP a ser aberto quando o botão é pressionado.
callback_data String Opcional. Dados a serem enviados em um callback query para o bot quando o botão é pressionado, 1-64 bytes.
switch_inline_query String Opcional. Se configurado, pressionar o botão solicitará ao usuário selecionar um dos seus bate-papos, abrir esse bate-papo e inserir o nome de usuário do bot e a consulta inline especificada no campo de entrada. Pode estar vazio, caso em que apenas o nome de usuário do bot será inserido.
switch_inline_query_current_chat String Opcional. Se configurado, pressionar o botão irá inserir o nome de usuário do bot e a consulta inline especificada no campo de entrada do bate-papo atual. Pode estar vazio, caso em que apenas o nome de usuário do bot será inserido. Isso oferece uma maneira rápida para o usuário abrir seu bot no modo inline no mesmo bate-papo - bom para selecionar algo de várias opções.

Este objeto representa uma consulta de retorno de chamada recebida de um botão de retorno de chamada em um inline keyboard. Se o botão que originou a consulta foi anexado a uma mensagem enviada pelo bot, a mensagem de campo estará presente. Se o botão foi anexado a uma mensagem enviada via o bot (no modo inline), o campo inline_message_id estará presente. Exatamente um dos campos de dados ou game_short_name estará presente.

Campo Tipo Descrição
id String Identificador exclusivo para esta consulta.
from User Remetente.
message Message Opcional. Mensagem com o botão de retorno de chamada que originou a consulta. Observe que o conteúdo da mensagem e a data da mensagem não estarão disponíveis se a mensagem for muito antiga.
inline_message_id String Opcional. Identificador da mensagem enviada via o bot no modo inline, que originou a consulta.
chat_instance String Identificador global, correspondente exclusivamente ao chat para o qual a mensagem com o botão de retorno de chamada foi enviada. Útil para altas pontuações nos jogos.
data String Opcional. Dados associados ao botão de retorno de chamada. Esteja ciente de que um cliente ruim pode enviar dados arbitrários neste campo.
game_short_name String Opcional. Nome abreviado de um jogo a ser devolvido, serve como o identificador exclusivo para o jogo.

NOTA: Depois que o usuário pressionar um botão de retorno de chamada, os clientes do Telegram exibirão uma barra de progresso até você chamar ShellBot.answerCallbackQuery. Portanto, é necessário reagir ao chamar ShellBot.answerCallbackQuery, mesmo que não seja necessária notificação ao usuário (por exemplo, sem especificar nenhum dos parâmetros opcionais).

Ao receber uma mensagem com este objeto, os clientes do Telegram exibirão uma interface de resposta para o usuário (atue como se o usuário selecionasse a mensagem do bot e tocasse 'Responder'). Isso pode ser extremamente útil se você quiser criar interfaces passo-a-passo fáceis de usar sem ter que sacrificar o modo de privacidade.

Campo Tipo Descrição
force_reply True Mostra a interface de resposta para o usuário, como se eles selecionassem manualmente a mensagem do bot e tocassem 'Responder'.
selective Boolean Opcional. Use este parâmetro se desejar forçar a resposta apenas de usuários específicos. Alvos: 1) usuários que são mencionados no texto do objeto Message; 2) se a mensagem do bot for uma resposta (tenha reply_to_message_id), remetente da mensagem original.

Exemplo: Um motor de pesquisa para grupos é executado no modo de privacidade (apenas recebe comandos, respostas a suas mensagens e menções). Poderia haver duas maneiras de criar uma nova pesquisa:

  • Explique ao usuário como enviar um comando com parâmetros (por exemplo: /NovaPesquisa resposta1 respota2 resposta3). Pode ser atraente para os usuários incondicionais, mas falta o polonês moderno.
  • Guie o usuário através de um processo passo a passo. "Por favor, envie-me sua pergunta", "Legal, agora vamos adicionar a primeira opção de resposta", "Ótimo". Continue adicionando opções de resposta, depois envie /termine quando estiver pronto'.

A última opção é definitivamente mais atraente. E se você usa ForceReply nas perguntas do seu bot, receberá as respostas do usuário, mesmo que apenas receba respostas, comandos e menções - sem qualquer trabalho extra para o usuário.

Este objeto representa uma foto de bate-papo.

Campo Tipo Descrição
small_file_id String Identificador de arquivo exclusivo da foto de bate-papo pequena (160x160). Este arquivo_id pode ser usado apenas para download de fotos.
big_file_id String Identificador de arquivo exclusivo de grande (640x640) foto de bate-papo. Este arquivo_id pode ser usado apenas para download de fotos.

Este objeto contém informações sobre um membro de um bate-papo.

Campo Tipo Descrição
user User Informações sobre o usuário.
status String O status do membro no bate-papo. Pode ser “creator”, “administrator”, “member”, “restricted”, “left” ou “kicked”.
until_date Integer Opcional. Restictred e chutado apenas. Data em que as restrições serão levantadas para este usuário, tempo unix.
can_be_edited Boolean Opcional. Administradores apenas. É true, se o bot pode editar os privilégios de administrador desse usuário.
can_change_info Boolean Opcional. Administradores apenas. É true, se o administrador pode alterar o título do bate-papo, a foto e outras configurações.
can_post_messages Boolean Opcional. Administradores apenas. É true, se o administrador pode postar no canal, apenas canais.
can_edit_messages Boolean Opcional. Administradores apenas. É true, se o administrador pode editar mensagens de outros usuários, apenas canais.
can_delete_messages Boolean Opcional. Administradores apenas. É true, se o administrador pode excluir mensagens de outros usuários.
can_invite_users Boolean Opcional. Administradores apenas. É true, se o administrador pode convidar novos usuários para o bate-papo.
can_restrict_members Boolean Opcional. Administradores apenas. É true, se o administrador pode restringir, proibir ou cancelar os membros do bate-papo.
can_pin_messages Boolean Opcional. Administradores apenas. É true, se o administrador pode inserir mensagens, somente supergrupos
can_promote_members Boolean Opcional. Administradores apenas. É true, se o administrador pode adicionar novos administradores com um subconjunto de seus próprios privilégios ou administradores de rejeições que promoveu, direta ou indiretamente (promovido por administradores que foram nomeados pelo usuário).
can_send_messages Boolean Opcional. Somente restrito. É true, se o usuário pode enviar mensagens de texto, contatos, locais e locais.
can_send_media_messages Boolean Opcional. Somente restrito. É true, se o usuário pode enviar áudios, documentos, fotos, vídeos, notas de vídeo e notas de voz, implica can_send_messages.
can_send_other_messages Boolean Opcional. Somente restrito. É true, se o usuário pode enviar animações, jogos, adesivos e usar bots inline, implica can_send_media_messages.
can_add_web_page_previews Boolean Opcional. Somente restrito. É true que, se o usuário puder adicionar visualizações de páginas web às suas mensagens, implica can_send_media_messages

Este objeto representa um adesivo.

Campo Tipo Descrição
file_id String Identificador exclusivo para este arquivo.
width Integer Largura da etiqueta.
height Integer Altura da etiqueta.
thumb PhotoSize Opcional. Miniatura do adesivo no formato .webp ou .jpg.
emoji String Opcional. Emoji associado com o adesivo.
set_name String Opcional. Nome do conjunto de adesivos a que a etiqueta pertence.
mask_position MaskPosition Opcional. Para adesivos de máscara, a posição onde a máscara deve ser colocada.
file_size Integer Opcional. Tamanho do arquivo.

Este objeto representa um conjunto de adesivos.

Campo Tipo Descrição
name String Nome do conjunto de adesivos.
title String Título do conjunto de adesivos.
contains_masks Boolean É true, se o conjunto de adesivos contém máscaras.
stickers Array de Sticker Lista de todas as etiquetas definidas.

Este objeto descreve a posição em faces onde uma máscara deve ser colocada por padrão.

Campo Tipo Descrição
point String A parte do rosto em relação à qual a máscara deve ser colocada. Um de “forehead”, “eyes”, “mouth”, or “chin”.
x_shift Float Deslocar pelo eixo X medido em larguras da máscara dimensionadas para o tamanho do rosto, da esquerda para a direita. Por exemplo, escolher -1.0 colocará a máscara apenas à esquerda da posição de máscara padrão.
y_shift Float Deslocar pelo eixo Y medido em alturas da máscara dimensionadas para o tamanho do rosto, de cima para baixo. Por exemplo, 1.0 colocará a máscara logo abaixo da posição de máscara padrão.
scale Float Coeficiente de escala de máscara. Por exemplo, 2.0 significa tamanho duplo.

Contém informações sobre por que um pedido não teve êxito.

Campo Tipo Descrição
migrate_to_chat_id Integer Opcional. O grupo foi migrado para um supergrupo com o identificador especificado. Este número pode ser superior a 32 bits e algumas linguagens de programação podem ter dificuldade/defeitos silenciosos na interpretação. Mas é menor do que 52 bits, então um tipo de flutuador inteiro ou de precisão dupla de 64 bits assinado é seguro para armazenar esse identificador.
retry_after Integer Opcional. Em caso de excesso de controle de inundação, o número de segundos restantes para aguardar antes da solicitação pode ser repetido.

Descreve as ações que um usuário não administrador tem permissão para realizar em um bate-papo.

Campo Tipo Descrição
can_send_messages Boolean Opcional. True, se o usuário tiver permissão para enviar mensagens de texto, contatos, locais e locais.
can_send_media_messages Boolean Opcional. True, se o usuário tiver permissão para enviar áudios, documentos, fotos, vídeos, anotações em vídeo e anotações de voz, isso implica em can_send_messages.
can_send_polls Boolean Opcional. True, se o usuário tiver permissão para enviar pesquisas, isso implica em can_send_messages.
can_send_other_messages Boolean Opcional. True, se o usuário tiver permissão para enviar animações, jogos, adesivos e usar bots em linha, isso significa can_send_media_messages.
can_add_web_page_previews Boolean Optional. Opcional. True, se o usuário tiver permissão para adicionar visualizações de páginas da Web às suas mensagens, isso significa que can_send_media_messages.
can_change_info Boolean Opcional. True, se o usuário tiver permissão para alterar o título do bate-papo, a foto e outras configurações. Ignorado em supergrupos públicos.
can_invite_users Boolean Opcional. True, se o usuário tiver permissão para convidar novos usuários para o bate-papo.
can_pin_messages Boolean Opcional. True, se o usuário tiver permissão para fixar mensagens. Ignorado em supergrupos públicos.
Clone this wiki locally