PubNubとIFTTTによるSMS通知システム
Published: 2024-03-14 16:50:36

開発者であれば、IaaS（Infrastructure as a Service）、PaaS（Platform as a Service）、そして [SaaS（サービスとしてのソフトウェア）](https://www.pubnub.com/solutions/enterprise-software/).これらの概念は、アプリケーションやサービスを構築、管理、デプロイする上で非常に重要です。IaaSは、インターネット上でスケーラブルなコンピューティング・リソースを提供します。PaaSは、開発者が基盤となるインフラストラクチャの構築や保守の複雑さなしに、アプリケーションを開発、実行、管理できるプラットフォームを提供します。SaaSもまた、インターネット上でソフトウェア・アプリケーションを提供する。SaaSプラットフォームであるIFTTT（If This Then That）やIaaSプラットフォームであるPubNubなどのサービスは、自動化とリアルタイムのコミュニケーションのための貴重なツールを提供し、アプリケーションをこれまで以上に迅速に本番稼動させることができます。

技術概要
----

### PubNubイベント＆アクション（E&A）

[PubNubイベント＆アクション](https://www.pubnub.com/docs/serverless/events-and-actions/overview)(E&A）はPubNubプラットフォームの拡張機能です。PubNubイベント＆アクションを使用すると、独自のPubNubイベントをフィルタリング/処理し、これらのイベントを複数の方法で設定したサードパーティサービスに送信できます。

PubNubイベントは、ユーザーがメッセージを公開したとき、ユーザーのプレゼンス状態が変更されたとき、または他の多くのイベント( [イベントドキュメント](https://www.pubnub.com/docs/serverless/events-and-actions/events)を参照)。PubNubイベントはPubNubイベントリスナーによってピックアップされます。PubNubリスナーは特定のイベントをリッスンし、対応するアクションを実行します。このプロセスはコーディングなしでPubNubポータルで直接実行されます。

### IFTTTとSMS通知

[IFTTT](https://ifttt.com/)はウェブベースの自動化プラットフォームで、ユーザーがさまざまなウェブアプリケーションやサービスを接続してタスクを自動化し、新しい機能を発見することを可能にします。アプレットと呼ばれるシンプルな条件文を作成し、アプリケーションやサービスの変更をトリガーすることができます。

IFTTTを通じて設定できる100以上の統合のうちの2つは、WebhookとSMS通知だ。これらの統合はPubNubイベント＆アクション（E&A）に接続します。以下の図は、これから作成するシステムを視覚化するのに役立ちます。

![](https://www.pubnub.com/cdn/3prze68gbwl1/1IXhfT1ibiNjXbPOhJAAyn/57dc31be82227fe229993d7bdd1afd4f/Frame_1.png)

前提条件
----

PubNubアカウントにサインアップしていることを確認してください。 [イベント＆アクション価格](https://www.pubnub.com/docs/general/resources/events-and-actions-pricing)ページをご覧ください。また、Pubnub管理者ポータル内のイベント＆アクションに移動し、「アップグレード」を選択してイベント＆アクションの料金プランを表示することもできます。このブログではPubNubデバッグコンソールを使用してメッセージを発行し、IFTTTを使用して処理します。

IFTTTアカウントにサインアップしたことを確認してください。上図にあるように、IFTTTアカウントを使ってSMSインテグレーションをセットアップし、WebHook経由で接続します。

E&Aの開始と詳細については、PubNubイベント＆アクションに関する他のコンテンツをお読みください：

-   [イベントとアクションの設定](https://www.pubnub.com/how-to/set-up-events-and-actions/)
    
-   [E&Aとファンクションの違い](http://pubnub.com/blog/events-and-actions-or-pubnub-functions-picking-the-right-tool/)
    
-   [高度なJSONPathを使用したメッセージのフィルタリング方法](https://www.pubnub.com/how-to/eanda-advanced-jsonpath-filter/)
    

PubNubとIFTTTの接続
---------------

弊社の [ドキュメント](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-ifttt-action)を参照してください。

このウォークスルーでは、PubNub Events & Actions IFTTT統合を使用し、PubNubインスタンスをIFTTTに直接接続します。特定のチャネルを通じてメッセージが送信されたときに、携帯電話へのSMS通知を自動化する予定です。

まず、PubNubポータル内にイベントリスナーを作成しましょう。このイベントリスナーは、"Send\_SMS "チャネルを通じて送信されたメッセージをリスンする役割を担う。

![](https://www.pubnub.com/cdn/3prze68gbwl1/cqscJ3G6ji9oVY84zLmfC/a4874dcaa52203e484cde8370ee66006/Screenshot_2024-03-11_at_12.51.17_AM.png)

以下の設定は、"Send\_SMS "チャネルを通して送信されたメッセージをリスンするための基本的なフィルタを設定する方法を示しています。しかし、高度なJSONパス機能を使用する場合、PubNubイベントフィルタでできることはもっとたくさんあります。

![](https://www.pubnub.com/cdn/3prze68gbwl1/6rQ3JLm967DVo6FcLkyfgN/f9db88a18de625133c2e8d16f36e0a88/Screenshot_2024-03-11_at_12.50.55_AM.png)

イベントフィルタを設定したので、PubNubアクションをアタッチします。Event Nameは後でIFTTT環境を設定するときに使用します。また、IFTTT Webhookキーを取得し、IFTTTワークフローを設定します。 さらに、Webhookリクエストにヘッダーを追加することができます。これはPubNubをIFTTTに接続するために必要ではありません。

![](https://www.pubnub.com/cdn/3prze68gbwl1/707m0doUUFo4vXgIPGrq1s/254983405bb2d2cf73e8285d2ff12869/Screenshot_2024-03-13_at_9.42.27_PM.png)

PubNubアクションを追加した後、IFTTTに向かい、Createをクリックし、"If This "を選択する。検索バーで "Webhook "を検索する。下の画像のように、"Receive a web request with a JSON payload "オプションを使用する。

![](https://www.pubnub.com/cdn/3prze68gbwl1/3zSQLTPtmqAnirqNxo2Omn/eae7a7d6a85f48a7e08e75e3deb82407/Screenshot_2024-03-13_at_10.32.44_PM.png)

設定したPubNubアクションの "イベント名 "を入力する。"イベント名 "はこの場合、"publish\_message "である。イベント名はPubNubとIFTTTで同じでなければならない。If This "トリガーを作成したら、Webhookキーを取得し、Webhookサービスページに移動する。 [Webhookサービスページ](https://ifttt.com/maker_webhooks)をクリックし、そこからWebhookキーをコピーします。

Then That "トリガーでは、"SMS "を検索し、そのアクションを作成する。PubNubイベントを解析し、メッセージ部分のみを送信するために、ワークフローに "フィルターコード "を追加します。

![](https://www.pubnub.com/cdn/3prze68gbwl1/6LQGoclDVwVXGyeJiSylmD/998ed40b1fa206d40d73cf6f5a233516/Screenshot_2024-03-13_at_10.46.47_PM.png)

以下のPubNubイベントを参照し、パブリッシュされたイベントに含まれるすべてのものを理解してください。これからメッセージを解析します。

```js
{
  "event": {
    "channel": "Channel-Barcelona",
    "eventCategory": "message",
    "eventType": "message.publish",
    "eventId": "8997eeb6-2a94-455b-ad6f-57296b785273",
    "eventPayload": {
      "message": "Enter message here",
      "meta": null
    },
    "iso8601timestamp": "2024-03-14T01:24:38Z",
    "subscribeKey": "...",
    "timetoken": "17103794788490465",
    "senderId": "Jack-device"
  },
  "eventsAndActionsMetadata": {
    "eventListenerMetadata": {
      "eventListenerId": "d69b8f9c-5d24-47f0-81d0-98accd38fdba"
    },
    "actionMetadata": {
      "actionId": "96cb5d6c-c121-4a0d-a703-cd78be1099d0",
      "actionInstanceId": "f395ae94-0aaf-4ed7-9add-57ee9db30272",
      "actionInvocationId": "81f7ea47-dace-4812-b546-a26057c127ce",
      "webhookMetadata": {
        "retryMetadata": {
          "retryIntervalSeconds": 450,
          "attemptNum": 0,
          "maxNumRetries": 2
        }
      }
    }
  }
}
```

以下のフィルターコードはPubNubイベントを解析し、"message "部分をテキストメッセージとして送信します。

```js
// Add your code here. All actions will run unless you explicitly skip them.
// Quick tips!
// Auto-complete is on. Start typing to see ingredient options.
// Hover over any ingredient to see the variable type and an example.
// TypeScript v2.92
var json = JSON.parse(MakerWebhooks.jsonEvent.JsonPayload);

var message = json.event.eventPayload.message;

Sms.sendMeText.setMessage(message);
```

完成したアプレットとPubNubの統合は、チャンネル "Send\_SMS "を通じてPubNubから公開されたイベントをリッスンし、IFTTT側でPubNubイベントをパースしてSMSメッセージを電話番号に送信します。

![](https://www.pubnub.com/cdn/3prze68gbwl1/32wxNb95y5H4Pc7I3OJuQp/57b25e2194e989536a5bac8df90c58f4/Screenshot_2024-03-13_at_11.00.19_PM.png)

開発者の使用例
-------

実際のシナリオでIFTTTと統合されたPubNubを見るために、いくつかのユースケースに飛び込んでみましょう。

### チャットアプリケーション

ある企業が従業員間の社内コミュニケーションにチャットアプリケーションを使っている。彼らはIT問題に対する社内サポートシステムを改善したいと考えています。目標は、チャットメッセージからサポートチケットの作成を自動化し、関連するITサポートスタッフにリアルタイムで通知することです。

**PubNubを使ったチャットアプリケーション**：社内の [チャットアプリケーション](https://www.pubnub.com/solutions/chat/)はリアルタイムのメッセージングにPubNubを使用しています。ITサポートチャネルを含め、各部門にチャットチャネルがあります。

**IFTTTとの統合**：チャットアプリケーションはPubNub Events & Actionsを使用してIFTTTと統合されています。統合は、任意の部門のチャットチャネルで入力された特定のキーワードまたはフレーズがチャットアプリの外でアクションをトリガできるように設定されています。

**トリガーの設定**：チャットアプリケーションでは、従業員は「IT問題」などの特定のキーワードを含むメッセージを送信し、その後に問題の簡単な説明を続けることで、IT問題を報告することができます。PubNubはこのメッセージをリアルタイムで検出し、事前に定義されたIFTTTアプレットをトリガーします。

**チケット作成のためのIFTTTアプレット**：トリガーされたIFTTTアプレットは、会社のチケットシステム（Jira、Zendeskなど）に新しいサポートチケットを作成するように設定されます。アプレットはメッセージの内容を抽出し、新しいサポートチケットの詳細を記入するために使用します。

**ITサポートスタッフへの通知**：サポートチケットが作成されると、別のIFTTTアプレットがトリガーされ、ITサポートスタッフに通知されます。これはIFTTTがサポートする様々なチャンネル、例えばSMSやメールの送信、あるいはチャットアプリのITサポートのチャットチャンネルに直接メッセージを投稿することでも行うことができる。

**確認メッセージ**：チケットが作成され、ITサポートチームに通知されたことを確認する確認メッセージが、問題が報告された元のチャットチャンネルに返送されます。このメッセージには、参照用にチケットIDを含めることができます。

### IoTデバイスのモニタリング

企業は [IoT](https://www.pubnub.com/solutions/iot-device-control/)デバイス（環境センサー、スマートメーター、セキュリティカメラなど）がさまざまな運用目的で導入されています。これらのデバイスはPubNubを通じて接続・通信され、リアルタイムのデータ送信と監視が可能になっている。同社は社内コミュニケーションにPubNubを利用したチャットアプリケーションを活用している。IFTTTとの統合により、同社はIoTデバイスから受信したデータに基づいて応答や通知を自動化できる。

**リアルタイムのデータ送信**：各IoTデバイスは、ステータスの更新やアラートを専用のPubNubチャネルに直接公開するように設定されている。これらのメッセージには、温度異常、バッテリー残量、不正アクセス警告など、さまざまなデータタイプを含めることができる。

**データ処理用のPubNub関数**：PubNubファンクションは、IoTデバイスからのデータをリアルタイムでフィルタリングおよび処理するために展開される。この機能は、緊急の注意が必要であることを示す特定の条件やしきい値（例えば、センサーが事前に定義された範囲外の温度を検出した場合）について、受信メッセージを評価することができます。

**自動アクションのためのIFTTT統合**：PubNubイベントリスナーがアラート条件を検出すると、IFTTT Webhookを通じてIFTTTイベントをトリガーします。このイベントは、以下のような自動アクションを実行するように設定されます：

-   次のような自動アクションを実行するように設定されます。 [電子メール](https://ifttt.com/email)または [SMS](https://ifttt.com/sms)を送信する。
    
-   会社のチケットシステム（例． [Jira](https://ifttt.com/jira)).アプレットは、メッセージアラートから IT デバイスの何が問題かを把握し、チケット内で直接 IoT のログファイルを報告することができます。
    
-   将来の分析とアクションのために、イベントをメンテナンスログに記録します。
    

**デバイス制御コマンドのためのIFTTTアプレット**：チャットアプリケーションでは、チームメンバーがPubNubを通じてIoTデバイスにコマンドを送り返し、チャットに投稿された特定のキーワードやコマンドに反応するIFTTTの事前定義されたアプレットに基づいて、即時アクション（デバイスのリセット、設定の調整など）を実行することができます。

PubNubを使い始める
------------

ここまで、IFTTTアクションを使用し、シンプルなPubNubイベントリスナーをセットアップする方法について説明しました。PubNubイベント＆アクションの使い方を発展させるために、PubNubが提供する他のアクションをチェックしてみましょう。

-   [Webhookコールを行う](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-webhook-action)(フィルタリングされたイベントごとにサーバーを呼び出す）
    
-   [SQSに保存する](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-sqs-action)(各イベントを [AmazonのSQSキューイングサービス](https://aws.amazon.com/sqs/))
    
-   [Kinesisに送信](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-kinesis-action)(に送る [Amazonのイベント・インジェストン・サービス](https://aws.amazon.com/kinesis/))
    
-   [S3に送る](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-s3-action)(つまり、データを [Amazon S3バケット](https://aws.amazon.com/s3/))
    
-   [Kafkaに送る](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-kafka-action)(にデータを送る [アパッチ・カフカ](https://kafka.apache.org/))
    

PubNubは [SDKセット](https://www.pubnub.com/docs/sdks)を提供しています。これらのSDKは、現在のアプリケーションへのPubNubの機能の実装を容易にし、リアルタイムデータストリーミング、処理、および通信機能を簡単に追加できます。PubNubのSDKは、Web、モバイル、サーバーサイドのいずれのアプリケーションでも、高度にインタラクティブで応答性の高いアプリケーションを構築するために必要なツールを提供します。

ご質問やご不明な点がございましたら、devrel@pubnub.com の開発者対応チームまでお気軽にお問い合わせください。

#### 目次

[技術概要PubNub](#h-0)[イベント＆アクション（E&A）](#h-1)[IFTTTとSMS通知](#h-2)[前提](#h-3)[条件](#h-2)[PubNubとIFTTTの](#h-4)[接続](#h-2)[開発者の](#h-4)[使用例チャット](#h-5)[アプリケーションIoT](#h-6)[デバイス監視](#h-7)[PubNubを使い](#h-8)始めるために

PubNubはどのようにお役に立ちますか？
=====================

この記事は[PubNub.comに](https://www.pubnub.com/blog/sms-notification-system-with-ifttt/)掲載されたものです。

PubNubのプラットフォームは、開発者がWebアプリ、モバイルアプリ、IoTデバイス向けにリアルタイムのインタラクティブ機能を構築、提供、管理できるように支援します。

私たちのプラットフォームの基盤は、業界最大かつ最もスケーラブルなリアルタイムエッジメッセージングネットワークです。世界15か所以上で8億人の月間アクティブユーザーをサポートし、99.999%の信頼性を誇るため、停電や同時実行数の制限、トラフィックの急増による遅延の問題を心配する必要はありません。

PubNubを体験
---------

[ライブツアーを](https://www.pubnub.com/tour/introduction/)チェックして、5分以内にすべてのPubNub搭載アプリの背後にある本質的な概念を理解する

セットアップ
------

[PubNubアカウントに](https://admin.pubnub.com/signup/)サインアップすると、PubNubキーに無料ですぐにアクセスできます。

始める
---

[PubNubのドキュメントは](https://www.pubnub.com/docs)、ユースケースや[SDKに](https://www.pubnub.com/docs)関係なく、あなたを立ち上げ、実行することができます。