Skip to content

Caller number #1

Description

@josep112

Qual variável devo usar para conseguir visualizar o numero do celular da pessoa que esta enviando a mensagem?

Activity

  1. shellscriptx commented on May 17, 2017

    @shellscriptx
    Owner

    O telefone do usuário não é enviado no object user, somente os campos abaixo fazem parte da estrutura do objeto user:

    id
    first_name
    last_name
    username

    Desculpe a demora, pois as coisas estão corridas.

  2. ptzumba commented on Sep 22, 2017

    @ptzumba

    Olá!
    Como posso fazer para pegar o valor do botão pressionado?
    Dede já obg!

  3. shellscriptx commented on Sep 22, 2017

    @shellscriptx
    Owner

    O valor da query está contida na variável callback_query_data que é inicializada sempre que um inline_button é pressionado. Para maior esclarecimento, montei o código abaixo que exibe um menu contendo 3 opções que retornam valores distintos (10, 20 e 30) e que está associado ao comando /menu.

    # Importando API
    source ShellBot.sh
    
    # Token do bot
    bot_token='<TOKEN_AQUI>'
    
    # Inicializando o bot
    ShellBot.init --token "$bot_token" --monitor --flush
    ShellBot.username
    
    # limpa o conteúdo da variável.
    botao=''
    # Criando 3 botões e definindo seus valores.
    ShellBot.InlineKeyboardButton --button 'botao' --line 1 --text 'Opcao 1' --callback_data '10' # valor 10
    ShellBot.InlineKeyboardButton --button 'botao' --line 2 --text 'Opcao 2' --callback_data '20' # valor 20
    ShellBot.InlineKeyboardButton --button 'botao' --line 3 --text 'Opcao 3' --callback_data '30' # valor 30
    
    # Cria o objeto inline_keyboard contendo os elementos armazenados na variável 'botao'
    # É retornada a nova estrutura e armazena em 'keyboard'.
    keyboard="$(ShellBot.InlineKeyboardMarkup -b 'botao')"
    
    while :
    do
        # Obtem as atualizações
        ShellBot.getUpdates --limit 100 --offset $(ShellBot.OffsetNext) --timeout 30
    
        # Lista o índice das atualizações
        for id in $(ShellBot.ListUpdates)
        do
        # Inicio thread
        (
            # Verifica se uma query foi instanciada.
            if [[ ${callback_query_chat_instance[$id]} ]]
            then
                # Testa o valor de retorno.
                case ${callback_query_data[$id]} in
                    10) btn_nome="Opcao 1";;
                    20) btn_nome="Opcao 2";;
                    30) btn_nome="Opcao 3";;
                esac
    
                # Responde a query com um texto personalizado.
                ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} --text "'$btn_nome' foi pressionada. Valor: ${callback_query_data[$id]}"
            fi
    
            # Verifica se o texto enviado é um comando válido.
            # Verifica se a mensagem é do tipo comando.
            if [[ ${message_entities_type[$id]} == bot_command ]]
            then
                case ${message_text[$id]%%@*} in
                    "/menu")
                        # Envia mensagem anexando o teclado.
                        ShellBot.sendMessage --chat_id ${message_chat_id[$id]} \
                                             --text "Olá *${message_from_first_name[$id]}*, clique na opção desejada." \
                                             --parse_mode markdown \
                                            --reply_markup "$keyboard"
                    ;;
                esac
            fi
        ) & # Utilize a thread se deseja que o bot responda a várias requisições simultâneas.
        done
    done
    #FIM

    Habilite o modo --monitor na chamada do método ShellBot.init para lhe auxiliar no momento de tratar as variáveis. Para mais informações clique aqui.

    Espero ter ajudado e qualquer dúvida estou a disposição.

    Att. SHAMAN

  4. ptzumba commented on Sep 22, 2017

    @ptzumba

    Muito obrigado amigo!

  5. ptzumba commented on Oct 5, 2017

    @ptzumba

    Shaman, qual o comando para enviar a digitação do bot?
    desde já muito obg!

  6. shellscriptx commented on Oct 5, 2017

    @shellscriptx
    Owner

    Utiliza-se o método ShellBot.sendChatAction para enviar uma determinada ação do bot ao usuário. No seu caso em especifico o nome da ação é typing

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions