[Resolvido] Usando POST para arquivo PHP


#1

Olá

Estou querendo usar a ação “Requisição HTTP” modo POST do Builder para jogar uma variavel do chat em um arquivo PHP que criei para armazenar o nome do usuário no meu banco de dados. Meu arquivo teste,php:

<?php include 'database.php'; $nome = $_POST["nome"];

mysqli_query($connect, “INSERT INTO bancodedados(nome) VALUES(’$nome’)”);

No bloco de acção eu coloco como “Requisição HTTP” modo POST, coloco a url do meu arquivo teste.php e em “key: value” tento colocar uma variavel ‘nome’, mas depois do chat só há adição de um valor em branco no meu banco de dados (ao menos há uma adição)

Como eu uso de forma apropriada o modo POST da “Requisição HTTP” nesse caso?


#2

Olá @Leocadio_Oliveira tudo bem ?

Você está testando o bot no BLiP Chat ?

No modo padrão do BLiP Chat e na janela de teste do BLiP os usuários não tem nome (por padrão).
Faça um teste no Facebook e veja se o nome aparece.

Para nomear um usuário no BLiP Chat você vai precisar do modo de autenticação logado, clique aqui para saber como.


#3

Olá Rafael. Sim eu eu estou testando! Gostaria na verdade de integra-lo com meu banco de dados. No exemplo que perguntei, o bot pergunta o nome do usuário e então ele grava no banco de dados, entendeu? Ele redireciona a variável pro meu script PHP.

Em outra situação quero que o bot pergunte o CPF, e quando o usuário digitar ele procura no banco de dados e retorna o nome do usuário: “Olá ‘nome’!”.

Eu apenas quero saber se é possível integrar o método HTTP POST ou GET que vi no Builder pra ‘conversar’ com meu script PHP.

Obrigado!


#4

Agora eu entendi @Leocadio_Oliveira :wink:

É possível sim. Basta realizar um POST (ou GET) em sua API enviando a variável no corpo da requisição (ou como um parametro da queryString, no caso de um GET).

Para fazer isso basta utilizar sua variável no padrão: {{nomeDaVariavel}}.

Exemplo 1:

Imagine que você armazene o nome do usuário em uma variável: nomeUsuario
Na requisição POST, o body da sua requisição será algo parecido com:

{
    "nome": "{{nomeUsuario}}"
}

Exemplo 2:

Imagine que você armazene o nome do usuário em uma variável: nomeUsuario
Na requisição GET, a URI da sua requisição será algo parecido com:

https://minhaurl.com.br?nome={{nomeUsuario}}


#5

Olá Rafa! Obrigado pelo retorno, consegui usar o GET com sua dica da URI (coloquei nesse formato no lugar da URL). Me atendeu!

Apenas como observação, o com o método POST não funcionou e coloquei assim

{
“nome”: “{{nomeUsuario}}”
}

O POST é melhor que o GET na minha aplicação, apesar do GET atender. Devo estar esquecendo algum detalhe…

obrigado!


#6

@Leocadio_Oliveira,

o processo de requisições GET e POST são os mesmos.
Confira se vc informou a url corretamente ou se você adicionou os cabeçalhos corretos.

Se sua API aceitar apenas objetos JSON, verifique se você adicionou o cabeçalho:

Content-Type: application/json


#7

Olá! Estou com o mesmo problema.

Estou enviando o bloco de variáveis por POST ao meu PHP e não estou recebendo nada.

Body

{
“nome” : “{{nomeCompCliente}}”
“email” : “{{emailCliente}}”
“telefone” : “{{celularCliente}}”
“cpf” : “{{cpfCliente}}”
}

Caso consigam me ajudar, fico muito agradecido!

abraço


#8

Olá @Fabio_Jose_de_Mattos, não está recebendo o request na sua aplicação ?

Já avaliou se o endpoint da sua aplicação foi corretamente configurado ?


#9

Olá! Estou utilizando o GET para o envio de informações para cadastro em meu BD. Assim, recebo o conteúdo de uma variável e faço a inclusão no banco. Com o Post não está funcionando

Abraço


#10

Oi, @rafaelpa.

Estou tendo exatamente o mesmo problema com um POST, não estou recebendo as variáveis que envio do chat. No meu caso, não posso trocar pra GET (que já testei e funciona, recebo os valores corretamente), então preciso que esse POST funcione.

Quando testo via Postman recebo tudo certinho e tenho o retorno esperado do meu servidor.

Alguma sugestão?
Além disso, tem algum lugar onde eu possa ver todas as ações do tipo “Requisição HTTP” de um chatbot? Não encontrei nada do tipo.

Obrigada!


#11

Olá @Jucilaine_Nogueira,

em teoria, não existe nenhuma diferença entre uma API implementada em PHP ou em qualquer outra linguagem.
O que você precisa validar é se sua API recebe as informações no Body. O que o BLiP faz é enviar o JSON, que você definir, no corpo da requisição.

Para que eu consiga te ajudar a entender o que está acontecendo me envie uma parte do endpoint que você está utilizando para que eu consiga pesquisar no nosso log.

Atualmente só é possível verificar as requisições HTTP por bloco. Não temos ainda uma visualização geral de requisições do Bot. Vou repassar para a equipe essa sugestão, muito obrigado.


#12

Obrigada pela resposta rápida, @rafaelpa.

O BLiP envia somente JSON? Ou posso incluir um cabeçalho Content-Type: application/x-www-form-urlencoded, por exemplo?

Atualmente só é possível verificar as requisições HTTP por bloco. Não temos ainda uma visualização geral de requisições do Bot. Vou repassar para a equipe essa sugestão, muito obrigado.

Onde eu vejo as requisições de um bloco? Estou começando agora, então ainda não encontrei tudo no BLiP :slight_smile:

Obrigada novamente!


#13

Não, ele envia qualquer coisa que você definir no Body. Mas lembre-se de adicionar no header seu Content-Type.

Basta acessar a aba de Ações no bloco que deseja.


#14

Olá Leocadio!
Você conseguiu utilizar a função POST?