Marcar uma mensagem recebida como lida

Neste trecho de código, você aprenderá como marcar uma mensagem recebida no WhatsApp como read. Marcar uma mensagem como read isso fará com que apareçam marcas de verificação azuis ao lado dessa mensagem na interface do WhatsApp, em vez de marcas de verificação cinzas.

Para marcar uma mensagem recebida como lida, basta enviar um PATCH solicitação ao objeto de mensagem armazenado nos servidores da Vonage, identificando a mensagem específica por meio de seu UUID. Como os objetos de mensagem são geolocalizados, é necessário utilizar uma URL específica para a região na solicitação; essa URL estará presente no corpo da mensagem recebida a ser marcada como read.

IMPORTANTE: Se um cliente não tiver enviado uma mensagem para você primeiro, na primeira vez que você enviar uma mensagem a um usuário, o WhatsApp exige que a mensagem contenha um modelo. Isso é explicado com mais detalhes no Tópico: Entendendo o WhatsApp.

Exemplo

Veja a seguir a descrição de todas as variáveis utilizadas em cada trecho de código:

ChaveDescrição
JWT

Used to authenticate your request. See Authentication for more information, including how to generate a JWT.

VONAGE_APPLICATION_ID

The Vonage Application ID.

VONAGE_PRIVATE_KEY_PATH

Private key path.

GEOSPECIFIC_MESSAGES_API_URL

The URL for the Geo-specific Messages API endpoint. One of https://api-eu.nexmo.com/v1/messages, https://api-us.nexmo.com/v1/messages, https://api-ap.nexmo.com/v1/messages.

GEOSPECIFIC_VONAGE_API_HOST

The hostname for the Geo-specific API endpoint. One of api-eu.nexmo.com, api-us.nexmo.com, api-ap.nexmo.com.

MESSAGE_UUID

The UUID of the specific message.

NOTA: Não use um espaço à esquerda + ou 00 Ao digitar um número de telefone, comece com o código do país; por exemplo, 447700900000.

Pré-requisitos

Se você não tiver um aplicativo, acesse criar um. Certifique-se também de acessar configure seus webhooks.

Escreva o código

Adicione o seguinte ao arquivo ` mark-as-read.sh`:

curl -X PATCH "${GEOSPECIFIC_MESSAGES_API_URL}/${MESSAGES_MESSAGE_ID}" \
  -H "Authorization: Bearer "$JWT\
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d $'{
    "status": "read",
  }'

Ver código-fonte completo

Execute seu código

Salve este arquivo no seu computador e execute-o:

bash mark-as-read.sh

Pré-requisitos

Se você não tiver um aplicativo, acesse criar um. Certifique-se também de acessar configure seus webhooks.

Adicione o seguinte ao arquivo ` build.gradle`:

implementation 'com.vonage:server-sdk-kotlin:2.1.1'

Crie um arquivo chamado ` MarkAsRead ` e adicione o código a seguir ao método ` main `:

val client = Vonage {
    applicationId(VONAGE_APPLICATION_ID)
    privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
}

Ver código-fonte completo

Escreva o código

Adicione o seguinte ao método ` main ` do arquivo ` MarkAsRead `:

client.messages.existingMessage(MESSAGES_MESSAGE_ID, MESSAGES_GEOSPECIFIC_API_HOST).markAsRead()

Ver código-fonte completo

Execute seu código

Podemos usar o plugin “ aplicativo ” para o Gradle a fim de simplificar a execução do nosso aplicativo. Atualize seu arquivo ` build.gradle ` com o seguinte:

apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''

Execute o seguinte comando ` gradle ` para rodar seu aplicativo, substituindo ` com.vonage.quickstart.kt.messages.whatsapp ` pelo pacote que contém ` MarkAsRead`:

gradle run -Pmain=com.vonage.quickstart.kt.messages.whatsapp.MarkAsRead

Pré-requisitos

Se você não tiver um aplicativo, acesse criar um. Certifique-se também de acessar configure seus webhooks.

Adicione o seguinte ao arquivo ` build.gradle`:

implementation 'com.vonage:server-sdk:9.3.1'

Crie um arquivo chamado ` MarkAsRead ` e adicione o código a seguir ao método ` main `:

VonageClient client = VonageClient.builder()
		.applicationId(VONAGE_APPLICATION_ID)
		.privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
		.build();

Ver código-fonte completo

Escreva o código

Adicione o seguinte ao método ` main ` do arquivo ` MarkAsRead `:

client.getMessagesClient().ackInboundMessage(MESSAGES_MESSAGE_ID, ApiRegion.API_EU);

Ver código-fonte completo

Execute seu código

Podemos usar o plugin “ aplicativo ” para o Gradle a fim de simplificar a execução do nosso aplicativo. Atualize seu arquivo ` build.gradle ` com o seguinte:

apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''

Execute o seguinte comando ` gradle ` para rodar seu aplicativo, substituindo ` com.vonage.quickstart.messages.whatsapp ` pelo pacote que contém ` MarkAsRead`:

gradle run -Pmain=com.vonage.quickstart.messages.whatsapp.MarkAsRead

Pré-requisitos

Se você não tiver um aplicativo, acesse criar um. Certifique-se também de acessar configure seus webhooks.

Install-Package Vonage

Escreva o código

Adicione o seguinte ao arquivo ` MarkAsRead.cs`:

var credentials = Credentials.FromAppIdAndPrivateKeyPath(VONAGE_APPLICATION_ID, VONAGE_PRIVATE_KEY_PATH);
var vonageClient = new VonageClient(credentials);
await vonageClient.MessagesClient.UpdateAsync(WhatsAppUpdateMessageRequest.Build(MESSAGES_MESSAGE_ID));

Ver código-fonte completo

Pré-requisitos

Se você não tiver um aplicativo, acesse criar um. Certifique-se também de acessar configure seus webhooks.

composer require vonage/client

Crie um arquivo chamado ` send-file.php ` e insira o seguinte código:

$keypair = new \Vonage\Client\Credentials\Keypair(
    file_get_contents(VONAGE_APPLICATION_PRIVATE_KEY_PATH),
    VONAGE_APPLICATION_ID
);

$client = new \Vonage\Client($keypair);

Ver código-fonte completo

Escreva o código

Adicione o seguinte ao arquivo ` send-file.php`:


$fileObject = new \Vonage\Messages\MessageObjects\FileObject(
    'https://example.com/file.pdf',

Ver código-fonte completo

Execute seu código

Salve este arquivo no seu computador e execute-o:

php send-file.php

Pré-requisitos

Se você não tiver um aplicativo, acesse criar um. Certifique-se também de acessar configure seus webhooks.

pip install vonage python-dotenv

Escreva o código

Adicione o seguinte ao arquivo ` mark-as-read.py`:

client.messages.mark_whatsapp_message_read("MESSAGES_MESSAGE_ID")

Ver código-fonte completo

Execute seu código

Salve este arquivo no seu computador e execute-o:

python messages/whatsapp/mark-as-read.py

Pré-requisitos

Se você não tiver um aplicativo, acesse criar um. Certifique-se também de acessar configure seus webhooks.

gem install vonage

Crie um arquivo chamado ` mark-as-read.rb ` e insira o seguinte código:

client = Vonage::Client.new(
  application_id: VONAGE_APPLICATION_ID,
  private_key: VONAGE_PRIVATE_KEY,
  api_host: GEOSPECIFIC_VONAGE_API_HOST
)

Ver código-fonte completo

Escreva o código

Adicione o seguinte ao arquivo ` mark-as-read.rb`:

client.messaging.update(
  message_uuid: MESSAGES_MESSAGE_ID,
  status: 'read'
)

Ver código-fonte completo

Execute seu código

Salve este arquivo no seu computador e execute-o:

ruby mark-as-read.rb

Experimente

Ao executar o código, é enviada uma solicitação para marcar a mensagem recebida especificada como lida.