Enviar uma mensagem do WhatsApp para uma pessoa que nunca se comunicou com meu chatbot


Boa tarde


Estou tentando enviar uma mensagem do WhatsApp para uma pessoa que nunca se comunicou com meu chatbot.

É possível fazer isso?

Os usuários pedem para se comunicar com meu bot através de um anúncio no facebook e me deixam seu número.

Criei o contato seguindo a documentação “Adicionar contato”:


POST /commands HTTP/1.1
{
"id": "{{$guid}}",
"method": "set",
"uri": "/contacts",
"type": "application/vnd.lime.contact+json",
"resource": {
"identity": "{phoneNumber}@tunnel.msging.net",
"name": "{username}",
"phoneNumber": "{phoneNumber}",
"lastMessageDate": "2022-05-02T16:08:00.000Z",
"extras": {
"tunnel.owner": "{provider}@msging.net",
"tunnel.originator": "{phoneNumber}@wa.gw.msging.net",
"origen":""
},
"source": "WhatsApp"
}
}

Mas quando faço a solicitação get /contacts o contato que adicionei não está lá:


{
"id": "{{$guid}}",
"method": "get",
"uri": "/contacts?$filter=(substringof('{username}'%2Cname))"
}

Ele si aparece quando eu faço /contacts/{identity}.:


{
"id":"{{$guid}}",
"to": "[email protected]",
"method": "get",
"uri": "/contacts/{phoneNumber}@tunnel.msging.net"
}

Isso é porque o usuário não se comunicou anteriormente com o chatbot?


Eu li os posts relacionados no fórum, mas não consegui resolver meu problema. O que estou fazendo errado?




Aguardo sua resposta, muito obrigado!


5 comentários

Reputação 7
Crachá +3

Olá @Eugenia_Pineiro tudo bem ?


Informo que é possível sim, mas você não deve usar o phonenumber com @tunnel nem é necessário fazer o set contact… Para fazer os disparos através de api usando message template siga essa documentação : Blip Docs | API Reference

fazendo essas chamadas:

1° Requisição exemplo

image


2° Requisição exemplo



Lembrando que é necessário usar a chave do bot que está vinculado ao whatsapp.

A partir da resposta da primeira solicitação, qual campo eu tomo? “alternativeAccounnt” ou “identity”? Para colocar no campo “to” da segunda solicitação.

Não funciona

Reputação 7
Crachá +3

@Eugenia_Pineiro Recomendo o uso do alternativeAcount.

obrigado, mas fazer não funciona para mim. Não sei o que estou fazendo de errado, segui os passos que você me disse:






POST /commands HTTP/1.1


{
"id": "{{$guid}}",
"to": "[email protected]",
"method": "get",
"uri": "lime://wa.gw.msging.net/accounts/+{phoneNumber}"
}
Response 200 OK


  1. eu recebo alternativeAccount = [email protected]


POST /messages HTTP/1.1
{
"id":"{{$guid}}",
"to":"{alternativeAccount}",
"type":"application/json",
"content":{
"type":"template",
"template":{
"namespace":"{templateNamespace}",
"name":"{templateName}",
"language":{
"code":"{templateLanguage}",
"policy":"deterministic"
},
"components":[
{
"type": "body",
"parameters": [

]
}
]
}
}
}
Response 202 OK (mas a mensagem não chega)
Reputação 7
Crachá +3

Olá @Eugenia_Pineiro tudo bem ?


Valide o erro que ocorreu com esse comando :


POST https://http.msging.net/commands HTTP/1.1
Content-Type: application/json
Authorization: Key {YOUR_TOKEN}

{
"id": "{{$guid}}",
"method": "get",
"uri": "/threads/{{alternativeAccount}}?refreshExpiredMedia=true"
}

e ele retorna o status da mensagem que foi enviada.

Comente