Skip to main content

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!

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


@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)

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.