
シェア:
Phil is Head of Developer Relations at Hookdeck, an asynchronous messaging platform, and a proud Vonage alumni.
Facebookメッセンジャーでサンタの配達を通知
所要時間:1 分
製品廃止のお知らせ 2025年8月31日以降、Vonage Dispatch APIは新規ユーザーに対してクローズされますが、既存ユーザーに対しては引き続きサポートされます。フェイルオーバー機能を持つメッセージング・アプリケーションを構築したい場合、フェイルオーバーは現在Messages APIで直接サポートされています。
メッセージ・フェイルオーバー機能に関する一般的な情報については、本ガイドを参照してください。 このガイド.Dispatch APIからMessages API Failoverへの移行については、以下を参照してください。 このガイド.
この非推奨製品に関するご質問は、下記までお問い合わせください。 にご連絡ください。 Vonage Community Slackまでお問い合わせください。
幼い頃、毎年クリスマスになると、サンタがプレゼントを届けてくれたかどうかを待つのが、私にとって最大の興奮の瞬間だった。毎年クリスマスの朝になると、父はクリスマスツリーのある部屋に行って もし「を確認するために、クリスマスツリーのある部屋に行っていた。
今、父親としてサンタの配達をチェックする責任は私にある。
朝4時に起きてプレゼントを開ける家庭もあると聞く!ということは、サンタが朝早くから配達してくれる家もあるということだ。では、私はどうすればいいのだろう?ベッドから起き出して、30分おきにツリーの下をチェックしろというのだろうか?以前、「リアルタイム・ウェブの伝道師」であることを公言していた私としては、事実上HTTPポーリングの物理的バージョンであるという考えには乗り気ではない。いや、それじゃダメだ。そこで私は、Nexmo Dispatch APIを使って、Facebook Messengerを主要な通知チャネルとし、SMSにフォールバックするサンタ配達通知システムを構築することにした。
Santa Delivery Notifications via Facebook Messenger
この記事では、使用されているコンポーネントと、それらがどのように組み合わされてサンタ配達通知ソリューションを提供しているのかを説明します。コードの詳細については説明しませんが、すべてのコードは コードをGitHubにあります。
仕組み
このアプリは、Node.JSアプリケーションと Nexmo Dispatch APIを組み合わせ、SMSフォールバック付きでFacebook Messengerメッセージを送信します。 スティーブ・クロウ彼の SMSとJavaでサンタを追跡するFacebookページと関連するFacebookアプリケーションです。
フェイスブックへのログイン
アプリケーションの最初の部分では、ユーザーにフェイスブックへのログインを求める。
Facebook Login Flow
これは Facebookログインボタンを使用しています。 フェイスブックJavaScript SDK.
ユーザーの位置情報の取得
サンタが配達したかどうかは、以下の組み合わせで判断される:
ユーザーの所在地
サンタの配達ルート
Location flow
ユーザーの位置は、ブラウザを使用して決定されます。 ジオロケーションAPI.これは、ユーザーの座標を推測値として返します。
座標はNode.JSのバックエンドに送られ、Node.JSのバックエンドはアプリのために作成されたAPIを使用します。 SMSアプリでサンタを追跡するのために作成されたAPIを使用します。
SMSフォールバック用にユーザーの電話番号を取得する。
アプリケーションはユーザーがどこにいるかを知っているので、通知をどのように配信するかを知る必要があります。Facebook Messengerのメッセージが未読のままであれば、Nexmo Dispatch APIはSMSでもメッセージを配信するようにフォールバックする。そのため、フォールバックのためにユーザーの電話番号が必要です。
Get use's phone number flow
ユーザーは電話番号を入力し、"Go "ボタンをクリックします。クリックすると、電話番号がNode.JSのバックエンドに送信され、そのユーザーの電話番号が保存されます。
現在の機能を強化するには、Nexmoの Number Insight APIを使用することです。を使って電話番号が有効であることを確認し Verify APIを使用して、ユーザーによる電話番号の所有権を確認することができます。
Facebookメッセンジャー「サンタ配達通知」を購読する
アプリケーション全体で最も厄介だったのは、ユーザーが最初に私たちのFacebookページにメッセージを送信することなく、ユーザーにメッセージを送信できるようにすることだった。
結局、私は メッセンジャーに送信プラグインを見つけた。しかし、このプラグインには Facebookアプリケーションと 「opt_in "ウェブフック.
また、ユーザーがすでにFacebookにログインしていないと、「メッセンジャーに送信」ボタンがレンダリングされないこともわかりました。GitHubの を見てみるとにあるクライアント側のJavaScriptを見ると、このプラグインを使う際のいくつかの注意点(ユーザーがFacebookにログインしたときにページをリロードしなければならないなど)に対処するためのコードが書かれています。
Confirm subscription flow
ユーザーが "Send to Messenger "ボタンをクリックすると(代わりに "Subscribe "と言うように設定することもできます)、Facebookから設定された "opt_in "ウェブフックがトリガーされます。ウェブフックのペイロードには、重要な情報である ページスコープユーザーIDこれは、Facebookページに関連するユーザーのユニークなIDです。
この時点で、公式サブスクリプションをデータベース内に保存します。このアプリケーションは MLab.
このIDを使用すると、アプリケーションからユーザーにメッセージを送信できるようになります。 Nexmo Dispatch API を使ってユーザーにメッセージを送ることができます。.サブスクリプションを確認するために、サブスクリプションをしたこととその場所を知らせるメッセージが送信されます。
Subscription confirmation dialog
サンタの位置を確認し、通知を送る
サブスクリプションを保存すれば、あとは前述のサンタAPIを使ってサンタの居場所を監視するだけだ。
Santa delivery notifications flow
アプリケーションは、ユーザーの座標をAPIで使用します。 awayと表示されたら、サンタが配達に来たと判断します。こうして、Nexmo Dispatch APIを使用してFacebook Messenger経由でサンタ配達通知が送信されます。設定可能な時間内にメッセージが読まれなかった場合 ( expiry_timeの APIリファレンスを参照)、SMS通知も送信されます。
結論
この投稿では、Nexmo Dispatch APIを使用して、SMSフォールバック付きのFacebook Messengerを使用したサンタ配達通知を構築する方法について説明しました。GitHubの コードをご覧ください。または 問題を提起する(プルリクエスト)を送ってください。
これで、世界中の保護者は、サンタ配達の通知を受け取ったら、ベッドから出てサンタが配達したかどうかを確認するだけでよくなり、安心して眠れるようになった。
次のページ
試しに Dispatch APIスタンドアロン
追加 Number Insight APIを追加する。をアプリケーションに追加し、電話番号の形式や、ジオロケーションAPIが示すのと同じ場所に電話番号があるかどうかをチェックする。
を使用します。 Verify APIを使用します。を使用して、ユーザが登録する電話番号を所有していることを確認します。
ご意見・ご感想は下記までツイートしてください。 @NexmoDev