0032. 透過Twilio API 發送訊息到WhatsApp通訊應用軟體上,接收訊息

C#學習筆記

 

應用所需

1. Visual Studio 2017 

目的:

1. 透過Twilio (PaaS平台)發送訊息到WhatsApp的通訊應用軟體上 (目前WhatsApp的Business API 尚未可正式使用,這邊提供一個PaaS的發送管道)

※通訊軟體之前有介紹過Line 的ChatBot 可以參考該篇 => 連結

範例檔案: https://github.com/gotoa1234/WhatsAPPSendMessage
實作必須:

1. 手機號碼

2. Twilio帳號

本篇分為三部分 :

一、 Twilio 註冊教學
二、

設定SandBox

三、  C# 程式碼發送訊息到WhatsApp 應用軟體上

 


一、 Twilio 註冊教學


Step 1:進入Twilio 官網 ,選擇右邊的Sign Up 進行註冊

Step 2:這邊輸入個人的用戶資訊

Step 3:下方處輸入電話號碼,進行註冊

Step 4:註冊的手機號碼會收到簡訊,得到驗證碼,請輸入後繼續下一步

※黑框處是註冊的電話號碼

Step 5:註冊完畢,會進入創建專案的首頁,這邊用預設,請直接選擇最下方的 Continue 

Step 6:專案名稱 :隨意

Step 7:直接跳過,先不邀請任何人,之後可以再邀請

 


二、 設定SandBox


Step 1:進入專案的頁面,請選擇下方的 訊息圖片,進入SandBox設定

Step 2:進入後選擇 WhatsApp

Step 3:這邊會確認是否啟用SandBox ,請打勾 I agree. ,然後 Confirm ,進入下一步

Step 4:這邊要進行SandBox 註冊,我們得到

1. +1 415 523 8886 是SandBox 的手機號碼 ,並請用 join horn-vegetable 進行設定

2. 目前頁面等待接收

Step 5:到WhatsApp 上搜尋, +1 415 523 8886的帳號

Step 6:請對該號碼,輸入  join horn-vegetable  

join horn-vegetable

Step 7:可以得到訊息,SandBox 註冊成功,接著回到專案頁面

Step 8:收到訊息了 Message Reveived!  請在選擇 Next: Send a One-Way Message

 

Step 9:接著設定雙向通訊,選擇Two-Way Messaging

Step 10:回到WhatsApp 上,隨意輸入到剛剛 SandBox 的號碼上,這邊輸入:123

Step 11:回到專案頁面,得到訊息 :123 並且有來源 From: whatsapp +電話號碼,請選擇Send a Reply 進行回送訊息

Step 12:如下,Body 是SandBox發送的訊息,這邊直接按下 Make Request 按鈕,發送訊息

Step 13:WhatsApp上可以正確收到訊息,到此為止註冊完畢了

Step 14:回到Twilio頁面右上角,請選擇Setting

Step 15:可以看到 ACCOUNT SID 與 AUTH TOKEN 兩個資訊,下一章節要透過這兩個號碼,在程式中進行發送訊息的功能

 


三、 C# 程式碼發送訊息到WhatsApp 應用軟體上


 

Step 1:請打開Github的專案(連結),有以下代碼,請把: 

1. WhatsApp對方的號碼 

2. 自己帳號的 Account SID

3. 自己帳號的 Token

放進下方的位置,然後執行程式

        static void Main(string[] args)
        {

            string whatsappRecivePhones = "發送對象的電話號碼例如 : +8861234567";
            string userName = "您的Account SID";
            string authToken = "您的Token";
            string whatsappSandBox = "whatsapp:+14155238886";
            string messageString = "Hello 這是仙草奶綠 Twilio 測試";
            //設定登入帳號
            TwilioClient.Init(
                userName,
                authToken
            );

            //發送對象
            try
            {
                var message = MessageResource.Create(
                    from: whatsappSandBox,
                    to: $"whatsapp:{whatsappRecivePhones}",
                    body: $"{DateTime.Now} => 訊息:{messageString} "
                );
                Thread.Sleep(1500);//停頓1.5秒
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }


        }

 

Step 2:可以發現之後可以透過SandBox Twilio API 發送訊息給用戶了