
Partager:
Michael Crump travaille chez Vonage au sein de l'équipe Developer Experiences. C'est un codeur, un YouTuber et un conférencier qui aborde fréquemment divers sujets liés à .NET et au développement des communications et de l'informatique en nuage. Il se passionne pour aider les développeurs à comprendre les avantages de chacun d'entre eux de manière simple.
Envoyer un SMS à partir d'une feuille de calcul Excel
Introduction
Microsoft propose un moyen d'ajouter de nouvelles fonctionnalités aux applications Office, telles que Microsoft Excel, afin d'inviter l'utilisateur et d'interagir avec lui de manière spécifique aux besoins de votre entreprise. Vous pouvez effectuer ces tâches et en accomplir d'autres en utilisant Visual Basic for Applications (VBA). Il s'agit d'un langage de programmation simple mais puissant que vous pouvez utiliser pour, par exemple, transférer vos contacts de Microsoft Outlook vers une feuille de calcul Microsoft Excel.
Dans cet article de blog, nous allons utiliser VBA dans Microsoft Excel pour envoyer un message SMS. Il suffit d'entrer le numéro de téléphone portable et le texte à envoyer et d'appuyer sur un bouton pour l'envoyer ! Vous pouvez modifier le code pour ajouter des fonctionnalités supplémentaires dont votre entreprise pourrait avoir besoin, telles que la programmation. C'est parti !
Créer un Account de développeur Vonage
Nous devons créer un Account de développeur Vonage pour envoyer des SMS à partir de Vonage. Une fois que vous avez créé un Account, vous trouverez votre clé API et votre secret API sur le tableau de bord de l'API de Vonage sous Paramètres de l'API. Une fois que vous avez ces valeurs, conservez-les dans un endroit sûr, car nous les utiliserons bientôt.
Consultez la documentation de l'API SMS de Vonage.
Avant de commencer à coder, nous devrions d'abord consulter la documentation de l'API SMS de Vonage afin d'examiner les champs que l'API s'attend à ce que nous fournissions lorsqu'elle est appelée. En consultant la documentation, nous pouvons voir que plusieurs SDK de programmation sont pris en charge. Étant donné qu'Excel n'utilise que VBA, nous devrons appeler le point de terminaison REST fourni par Vonage.
Après avoir examiné l'extrait de code REST, nous pouvons voir qu'il y a plusieurs champs obligatoires, comme par exemple :
A
fromNumbersA
toNumbersLes
textque vous souhaitez envoyer.Un
api_keyetapi_secretce qui devrait être le cas à l'étape précédente.
L'exemple cURL ci-dessous montre à quoi il ressemble lorsqu'il est appelé.
Si vous exécutez ce code avec des informations et des références valides, vous verrez la sortie suivante apparaître dans votre terminal :
{
"messages": [
{
"to": "14259999999",
"message-id": "3c153507-8ade-4bd1-ab6f-12cb6f7f9efe",
"status": "0",
"remaining-balance": "39.08381985",
"message-price": "0.00869000",
"network": "310260"
}
],
"message-count": "1"
}Notez que status renvoie un code d'état de 0, ce qui signifie qu'il a été envoyé avec succès. Si vous l'avez envoyé à votre numéro de téléphone, un message texte devrait apparaître. Ensuite, configurons Microsoft Excel.
Mise en place de notre feuille de calcul Excel
Comme indiqué précédemment, Microsoft Excel peut utiliser VBA (Visual Basic for Applications) pour interagir avec les données de manière programmatique. Commençons par créer une feuille de calcul avec quelques lignes de données contenant les numéros auxquels nous voulons envoyer les messages texte et le message que nous voulons envoyer.
Commençons par créer une feuille de calcul avec quelques lignes de données contenant le numéro auquel nous voulons envoyer le message texte ainsi que le message que nous voulons envoyer.
Structurez votre feuille Excel comme suit :
A1 & A2 incluront les numéros de téléphone des cellules.
B1 & B2 comprendront le texte à envoyer.
H1 comprendra le texte "API Key".
H2 inclura le texte "API Secret".
I1 est votre clé API du tableau de bord API de Vonage.
I2 est votre secret API à partir du tableau de bord API de Vonage.
I3 sera un bouton qui dira "Envoyer un SMS" (je parlerai de la création du bouton plus tard).
Donnez un nom à votre feuille de travail, par exemple
Numbers.
Vous devriez maintenant avoir un écran qui ressemble à ce qui suit.
ExcelStart.png
Activation et configuration du mode développeur dans Microsoft Excel
Nous avons besoin d'ajouter une option pour voir le Développeur pour utiliser VBA. Vous pouvez activer cette option en allant dans Fichier -> Options -> Personnaliser le ruban et en cochant la case Développeur comme indiqué ci-dessous.
ExcelDevMode.png
Le Développeur devrait s'afficher dans la barre de menu. Sélectionnez-la, puis l'option Visual Basic pour permettre la saisie de code dans le système.
VisualBasic.png
Une nouvelle fenêtre apparaît avec Microsoft Visual Basic pour Applications en cours d'exécution. Sélectionnez Insérer dans les options du menu et sélectionnez Module pour saisir le code Visual Basic qui interagit avec la feuille Excel.
NewModule.png
Nous devons ajouter un Référence à la base de données Microsoft XML 6.0 qui nous permettra d'appeler un point de terminaison REST. Allez à Outils -> Référence et cochez Microsoft XML, v6.0comme indiqué ci-dessous :
AddReference.png
Ajout d'un code VBA pour appeler l'API SMS de Vonage
Copiez et collez le bloc de code suivant dans votre application et notez les commentaires que j'ai laissés et qui décrivent ce que fait chaque section.
Sub SendSMS()
'Authentication
ApiKey = ActiveSheet.Range("I1").Value
ApiSecret = ActiveSheet.Range("I2").Value
'Define our Worksheet so we can loop through the data for the number and message to send.
Dim wb As Workbook
Dim ws As Worksheet
Set wb = ThisWorkbook
Set ws = wb.Worksheets("Numbers")
'Loop through Worksheet content - I only had two rows in this example, but you can modify this to your needs.
For i = 1 To 2
toNumber = ws.Range("A" & i).Value 'our number to text
bodyText = ws.Range("B" & i).Value 'the text we wish to send
'Use Microsoft's XML Library to make a web request.
Set Request = CreateObject("MSXML2.ServerXMLHTTP.6.0")
'Concatenate the required data that Vonage's REST Endpoint is expecting.
Url = "https://rest.nexmo.com/sms/json?from=18335787204" & "&to=" & toNumber & "&text=" & bodyText & "&api_key=" & ApiKey & "&api_secret=" & ApiSecret
'Open POST Request
Request.Open "POST", Url, False
'Set the Request Header
Request.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
'Send Request
Request.send Url
Next i
'OPTIONAL: You can get the response text after a message is sent by calling MsgBox Request.responseText
End Sub
Enfin, nous devons ajouter un bouton pour déclencher cet événement. Sélectionnez Insérer dans le Menu DéveloppeurCliquez sur Boutonet placez-le dans I3.
ExcelButton.png
Une fois que vous aurez lâché votre souris, vous serez invité à Attribuer une macro à ce bouton. Sélectionnez la macro EnvoyerSMS que nous venons de coller, comme indiqué ci-dessous, et appuyez sur OK.
AssignMacro.png
Il est temps de le tester ! Assurez-vous d'avoir un numéro de téléphone fonctionnel et valide pour votre lieu dans les champs A1 & A2 et un texte dans les champs B1 & B2, et appuyez sur le bouton EnvoyerSMS et appuyez sur le bouton EnvoyerSMS.
ExcelStart.png
Si tout s'est bien passé, vous devriez avoir reçu un texte contenant les informations fournies dans la feuille de calcul.
Synthèse
VBA est très efficace en ce qui concerne les solutions pour les produits liés à Microsoft Office, comme nous l'avons vu aujourd'hui. En faisant des recherches pour cet article de blog, j'ai appris qu'il est utilisé depuis près de trente ans déjà. Cela me conforte dans l'idée qu'il s'agit d'une plateforme mature ; il y a de fortes chances que d'autres personnes aient déjà rencontré les mêmes problèmes que moi.
Si vous voulez faire cela dans Google Sheets, vous devriez regarder ici. Google Sheets et Microsoft Excel présentent de nombreuses similitudes, et vous utiliserez la même API SMS de Vonage dont il est question ici.
Comme toujours, si vous avez des questions ou des commentaires, rejoignez-nous sur le Slack des développeurs de Vonage. Merci encore pour votre lecture, et je vous donne rendez-vous au prochain numéro !
Partager:
Michael Crump travaille chez Vonage au sein de l'équipe Developer Experiences. C'est un codeur, un YouTuber et un conférencier qui aborde fréquemment divers sujets liés à .NET et au développement des communications et de l'informatique en nuage. Il se passionne pour aider les développeurs à comprendre les avantages de chacun d'entre eux de manière simple.