
Messages APIでサポートされていない受信メッセージを処理する
所要時間:1 分
メッセージ Messages APIを使用すると、WhatsApp、Facebook Messenger、Viberなどの多くのソーシャルメッセージングチャネルで顧客とつながることができます。
メッセージの送受信は双方向だ。しかし、急速に進化するソーシャル・メッセージ・チャネルの世界では、ユニークな問題があります。もし顧客が、まだサポートされていないメッセージタイプをあなたのビジネスに送信したらどうなるでしょうか?
例えば、顧客からWhatsApp経由でステッカーが送られてきたら?この疑問は、Messages APIと統合している人々に広く浸透している。
その答えは、インバウンドメッセージのリクエストボディにある。インバウンドメッセージのJSONには、メッセージのコンテンツオブジェクト内に typeフィールドが含まれています。
タイプがサポートされていない場合 typeフィールドは unsupportedこれはWhatsApp、Viber、Facebook Messenger、MMSに当てはまります。未サポートのペイロードを持つ受信メッセージのメッセージボディは以下のようになります:
{
"message_uuid": "aaaaaaaa-bbbb-cccc-dddd-0123456789ab",
"timestamp": "2020-01-01T14:00:00.000Z",
"to": {
"type": "whatsapp",
"number": "447700900000"
},
"from": {
"type": "whatsapp",
"number": "447700900001"
},
"message": {
"content": {
"type": "unsupported"
}
}
}顧客のWhatsApp番号が表示されます。この情報をもとに、アプリがどのように対応するかを決めることができます。顧客から返信があったことをメモしておくこともできますし、顧客が理解できないメッセージを送ってきたことを示す返信をすることもできます。
コードでサポートされていないメッセージを検出する
私は通常、このような概念を説明するコード例が好きなので、Node JSを使った例を見てみよう。新しいディレクトリを作成し、その中で npm install express body-parser
次に server.js.ここに以下のコードを追加する。
const app = require('express')()
const bodyParser = require('body-parser')
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true }))
app.post('/webhooks/inbound-message', (req, res) => {
if(req.body['message']['content']['type'] == 'unsupported'){
console.log("Received an unsupported message from "
+ req.body['from']['number']);
// add the rest of your unsupported logic here.
}
else{
console.log(req.body['message']['content'])
}
res.status(200).end();
});
app.listen(5000)
を実行してサーバーを起動します。 node server.js.サーバーが起動したら、最後にWhatsAppメッセージをサーバーに接続します。
私は ngrokを使い、Vonage Messages API からの WhatsApp 受信メッセージをローカルで受信することをお勧めします。ngrokを起動するには ngrok http 5000- を実行することで起動できる。アプリがメッセージを受信するのは BASE_URL/webhooks/inbound-messagesでメッセージを受信するので Messages API サンドボックス.
これで、自分にメッセージを送ることができる。WhatsAppに入り、メッセージサンドボックスにコーヒーステッカーを送ります:

私のアプリはそれを受信し、メッセージを印刷します: Received an unsupported message from WHATSAPP_NUMBER.
そうでない場合は、メッセージの内容が表示される。
