透過Ameba存取 IFTTT
IFTTT 介紹
IFTTT(If This Then That) 為一個雲端平台提供免費網路服務來創建 applets 或是簡單的條件陳述來指定網路服務觸發條件使其他像是 Gmail, Facebook, Telegram, Instagram, Pinterest 等網路服務進行特定的反應動作。
材料準備
- Ameba x 1
- https://ifttt.com/ 帳戶來存取 IFTTT 服務*
*Note: 登入後有多個雲端服務整合在 IFTTT 平台
範例說明
- 生成 IFTTT Applet
接下來示範如何透過 IFTTT Applet 來寄信至特定的收件者
這個範例中, 利用 ameba HTTP POST 功能來發布一個簡單的webhook服務, IFTTT 收到後觸發另一個網路服務(發送信件)
登錄 https://ifttt.com/後, 點選 My Applets
在Applet頁面中點選 “New Applet”
點選下方指示的 +this 來新增觸發服務
Choose a Service 中搜尋並選擇 “Webhooks” 服務
接著會出現可用的觸發服務, 目前 Webhooks 只有一個可選的 “Receive a web request” 觸發服務
一旦選擇 Receive a web request, 需要填入 event name 來成功辨別觸發服務
範例中使用 “test_event” 來當作事件名稱
接著選擇 +That 欄位來創建 action service 對應的服務
範例中選擇 Email 來當作觸發後的執行動作
Action Service下有可用的 Actions 列表。 此範例中只有 “Send me an Email”, 點選 Send me an Email 服務
在 Send me an Email 模板下, email 主旨與內文的內容是可編輯的。 點選 Create Action 來完成執行的動作。注意 Email 服務是基於IFTTT帳號下註冊的 email ID。
檢閱完點選 Finish 來完成 Applet 的生成。 接著可以在IFTTT頁面中的 My Applet 下找到此應用。
- 透過 Ameba 發布觸發事件
一旦Applet在IFTTT儀表板中準備就緒, 範例程式即可燒錄至 Ameba 來發布 HTTP 請求.
1. 範例程式放置在 “HTTP_IFTTT_POST” 資料夾中。 請按照以下步驟操作:
1) 在Arduino IDE 中打開 “File” -> “Examples” -> “AmebaWiFi” -> “HTTP_IFTTT_POST”。
2) 在程式碼中編輯下列三項使程式可以順利執行。
編輯 wi-fi 憑證來連接至 wi-fi 熱點或是無線接入點
在 host name 欄位中輸入 IFTTT 服務的 hostname “maker.ifttt.com”
在 Path 欄位中輸入 EventName 並在 Key 欄位中輸入 “trigger//with/key/”
− Event name: 必須與 IFTTT applet 所指定的名子一致, 此範例中的 event name 為 “test_event”
− Key: 在 IFTTT 帳戶中的 Webhook 服務下可以找到
3) 如何獲取 Webhooks key?
在 Services 標籤中尋找 Webhooks 服務
在 Webhooks 服務頁面中點選右上角的 Documentation 標籤
可以在 documentation 頁面中找到所需的key。 另外, 如何使用HTTP請求如下圖所示
範例程式碼如下所示
2. 在 Ameba 執行範例程式
透過 USB 連接 Ameba
點選 Arduino “Sketch” -> “Verify/Compile” 來編譯程式碼. “Done compiling” 會顯示在 Arduino IDE 視窗底部
點選 “Sketch” -> “Upload” 來上傳程式碼至 Ameba (D3 元件會出現閃爍來表示上傳的過程)
上傳完成後 (D3 元件會停止閃爍), “upload finish” 會顯示在 Arduino IDE 視窗底部
打開 serial monitor 並按 “Reset” 按鈕來查看輸出日誌
在serial monitor中出現 “Congratulations! You have fired the test_event event” 字串表示成功, 且電子郵件活動提醒將會發送
在 IFTTT Applet 所註冊的接收者將會收到 email 通知