Marquer un message entrant comme lu
Dans cet extrait de code, vous apprendrez comment marquer un message WhatsApp entrant en tant que read. Marquer un message comme read signifiera que des coches bleues s'afficheront en regard de ce message dans l'interface utilisateur de WhatsApp, au lieu de coches grises.
Marquer un message entrant comme lu se fait en envoyant un message PATCH à l'objet message stocké sur les serveurs de Vonage, en identifiant le message spécifique par son UUID. Comme les objets de message sont géolocalisés, une URL spécifique à la géographie doit être utilisée pour la demande ; elle sera présente dans le corps du message entrant à marquer comme read.
IMPORTANT : Si un client ne vous a pas envoyé de message au préalable, la première fois que vous envoyez un message à un utilisateur, WhatsApp exige que le message contienne un modèle. Ceci est expliqué plus en détail dans la section Comprendre le sujet de WhatsApp.
Exemple
Vous trouverez ci-dessous la description de toutes les variables utilisées dans chaque extrait de code :
| Clé | Description |
|---|---|
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 |
GEOSPECIFIC_VONAGE_API_HOST | The hostname for the Geo-specific API endpoint. One of |
MESSAGE_UUID | The UUID of the specific message. |
NOTE : N'utilisez pas de point de départ + ou 00 lorsque vous saisissez un numéro de téléphone, commencez par l'indicatif du pays, par exemple, 447700900000.
Conditions préalables
Si vous n'avez pas de demande, vous pouvez créer un. Veillez également à configurer vos webhooks.
Rédiger le code
Ajouter ce qui suit à 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",
}'
Exécutez votre code
Enregistrez ce fichier sur votre machine et exécutez-le :
Conditions préalables
Si vous n'avez pas de demande, vous pouvez créer un. Veillez également à configurer vos webhooks.
Ajouter ce qui suit à build.gradle:
implementation 'com.vonage:server-sdk-kotlin:2.1.1'Créez un fichier nommé MarkAsRead et ajoutez le code suivant à la méthode main:
val client = Vonage {
applicationId(VONAGE_APPLICATION_ID)
privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
}Rédiger le code
Ajouter ce qui suit à la méthode main du fichier MarkAsRead:
client.messages.existingMessage(MESSAGES_MESSAGE_ID, MESSAGES_GEOSPECIFIC_API_HOST).markAsRead()Exécutez votre code
Nous pouvons utiliser le plugin Applications pour Gradle afin de simplifier l'exécution de notre application. Mettez à jour votre build.gradle avec ce qui suit :
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Exécutez la commande gradle suivante pour exécuter votre application, en remplaçant com.vonage.quickstart.kt.messages.whatsapp par le paquet contenant MarkAsRead:
Conditions préalables
Si vous n'avez pas de demande, vous pouvez créer un. Veillez également à configurer vos webhooks.
Ajouter ce qui suit à build.gradle:
implementation 'com.vonage:server-sdk:9.3.1'Créez un fichier nommé MarkAsRead et ajoutez le code suivant à la méthode main:
VonageClient client = VonageClient.builder()
.applicationId(VONAGE_APPLICATION_ID)
.privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
.build();Rédiger le code
Ajouter ce qui suit à la méthode main du fichier MarkAsRead:
client.getMessagesClient().ackInboundMessage(MESSAGES_MESSAGE_ID, ApiRegion.API_EU);Exécutez votre code
Nous pouvons utiliser le plugin Applications pour Gradle afin de simplifier l'exécution de notre application. Mettez à jour votre build.gradle avec ce qui suit :
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Exécutez la commande gradle suivante pour exécuter votre application, en remplaçant com.vonage.quickstart.messages.whatsapp par le paquet contenant MarkAsRead:
Conditions préalables
Si vous n'avez pas de demande, vous pouvez créer un. Veillez également à configurer vos webhooks.
Install-Package VonageRédiger le code
Ajouter ce qui suit à 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));Conditions préalables
Si vous n'avez pas de demande, vous pouvez créer un. Veillez également à configurer vos webhooks.
composer require vonage/clientCréez un fichier nommé send-file.php et ajoutez le code suivant :
$keypair = new \Vonage\Client\Credentials\Keypair(
file_get_contents(VONAGE_APPLICATION_PRIVATE_KEY_PATH),
VONAGE_APPLICATION_ID
);
$client = new \Vonage\Client($keypair);Rédiger le code
Ajouter ce qui suit à send-file.php:
$fileObject = new \Vonage\Messages\MessageObjects\FileObject(
'https://example.com/file.pdf',Exécutez votre code
Enregistrez ce fichier sur votre machine et exécutez-le :
Conditions préalables
Si vous n'avez pas de demande, vous pouvez créer un. Veillez également à configurer vos webhooks.
pip install vonage python-dotenvRédiger le code
Ajouter ce qui suit à mark-as-read.py:
client.messages.mark_whatsapp_message_read("MESSAGES_MESSAGE_ID")Exécutez votre code
Enregistrez ce fichier sur votre machine et exécutez-le :
Conditions préalables
Si vous n'avez pas de demande, vous pouvez créer un. Veillez également à configurer vos webhooks.
gem install vonageCréez un fichier nommé mark-as-read.rb et ajoutez le code suivant :
client = Vonage::Client.new(
application_id: VONAGE_APPLICATION_ID,
private_key: VONAGE_PRIVATE_KEY,
api_host: GEOSPECIFIC_VONAGE_API_HOST
)Rédiger le code
Ajouter ce qui suit à mark-as-read.rb:
client.messaging.update(
message_uuid: MESSAGES_MESSAGE_ID,
status: 'read'
)Exécutez votre code
Enregistrez ce fichier sur votre machine et exécutez-le :
Essayez-le
Lorsque vous exécutez le code, une demande est faite pour marquer le message entrant spécifié comme lu.