Obtendo dados do endpoint da API Contacts

Nathan Begbie Atualizado por Nathan Begbie

Os dados de contato mudam conforme as pessoas interagem com seu serviço. É assim que você obtém informações atualizadas por meio da API.

No final de setembro de 2022, fizemos algumas alterações no endpoint da API Contacts. Se você usou o endpoint antes disso, certifique-se de ler primeiro sobre as três principais alterações.

Aqui está um exemplo de como recuperar detalhes de contato por meio da API

Imagine que temos apenas um único usuário que nos envia mensagens (Bob) e um campo de perfil personalizado chamado `current_ savings`. Na segunda-feira, 12 de setembro de 2022, eles nos enviaram uma mensagem dizendo que suas economias atuais são de US$ 100. Se executarmos o seguinte na terça-feira (13), poderemos consultar esses dados da seguinte forma:

# solicite um cursor para os dados
$ curl -X POST "https://whatsapp.turn.io/v1/data/contacts/cursor" \
-H "Autorização: token do portador" \
-H "Tipo de conteúdo: aplicativo/json" \
-H "accept: application/vnd.v1+json"
-d '
{
# início de segunda-feira, dia 12
"de": "2022-09-12T00:00:00.000Z",
# por um período de 24 horas
"até": "2022-09-13T00:00:00.000Z"
}
> {
"cursor": "an-example-cursor-1234",
"expires_at": "2022-09-14T17:47:18.318218Z"
}
# solicita os dados usando o cursor fornecido
$ curl -X OBTER "https://whatsapp.turn.io/v1/data/contacts/cursor/an-example-cursor-1234" \
-H 'Autorização: token do portador' \
-H "Aceitar: application/vnd.v1+json" \
> {
"dados": [
{
"detalhes": {
"aniversário": "1988-06-14T18:15:35.873852Z",
"idioma": "eng",
"localização": null,
"nome": "bob",
"opted_in": false,
"opted_in_at": null,
"sobrenome": null,
"whatsapp_id": "44623456700",
"nome_do_perfil_whatsapp": "bob",
"economia_atual": 100
},
"id": 1,
"inserted_at": "20222-09-12T08:30:00.000Z",
"número_id": 1,
"atualizado_at": "20222-09-12T08:30:00.000Z",
"uuid": "f6c4e666-81ad-430e-aea5-1ba33e6f4c35"
}
]
}

Ótimo! Portanto, temos os dados e podemos armazená-los em nosso data lake, ou banco de dados analítico.

Agora, imagine que Bob envie uma mensagem novamente na terça-feira, para dizer que suas economias aumentaram para US$ 120. Se solicitarmos os dados para o mesmo período (segunda-feira), na quarta-feira, dia 14, não receberemos mais nenhum dado de Bob:

# request a cursor for the data
$ curl -X POST "https://whatsapp.turn.io/v1/data/contacts/cursor" \
-H "Autorização: token do portador" \
-H "Tipo de conteúdo: aplicativo/json" \
-H "accept: application/vnd.v1+json"
-d '
{
# início de segunda-feira, dia 12
"de": "2022-09-12T00:00:00.000Z",
# por um período de 24 horas
"até": "2022-09-13T00:00:00.000Z"
}
> {
"cursor": "another-example-cursor-5678",
"expires_at": "2022-09-16T17:48:18.763987Z"
}
# solicitar os dados
curl -X OBTENHA "https://whatsapp.turn.io/v1/data/contacts/cursor/an-example-cursor-1234" \
-H 'Autorização: token do portador' \
-H "Aceitar: application/vnd.v1+json" \
> {
"dados": []
}

Em vez disso, se quisermos dados atualizados, devemos solicitar os dados do dia seguinte:

# solicitar um cursor para os dados
$ curl -X POST "https://whatsapp.turn.io/v1/data/contacts/cursor" \
-H "Autorização: token do portador" \
-H "Tipo de conteúdo: aplicativo/json" \
-H "accept: application/vnd.v1+json"
-d '
{
# início de terça-feira, dia 13
"de": "2022-09-13T00:00:00.000Z",
# por um período de 24 horas
"até": "2022-09-14T00:00:00.000Z"
}
> {
"cursor": "yet-another-example-cursor-9876",
"expires_at": "2022-09-16T17:48:18.763987Z"
}
# solicita os dados usando o dado cursor
$ curl -X GET "https://whatsapp.turn.io/v1/data/contacts/cursor/yet-another-example-cursor-9876" \
-H 'Autorização: token do portador' \
-H "Aceitar: application/vnd.v1+json" \
> {
"dados": [
{
"detalhes": {
"aniversário": "1988-06-14T18:15:35.873852Z",
"idioma": "eng",
"localização": null,
"nome": "bob",
"opted_in": false,
"opted_in_at": null,
"sobrenome": null,
"whatsapp_id": "44623456700",
"whatsapp_profile_name": "bob",
# observe a mudança no valor aqui!
"current_ savings": 120
},
"id": 1,
"inserted_at": "20222-09-12T08:30:00.000Z",
"number_id": 1,
"atualizado_at": "20222-09-13T10:00:00.000Z",
"uuid": "f6c4e666-81ad-430e-aea5-1ba33e6f4c35"
}
]
}

Observação: você não precisará solicitar os dados usando o intervalo de tempo do número para obter dados de contato atualizados, a menos que esteja solicitando pela primeira vez. 

Veja mais exemplos de chamadas na documentação da API.

Esse artigo foi útil?

Como marcar mensagens como lidas

Onde encontro minhas credenciais para a API de modelo de mensagem?

Contato