2017-12-14 12 views
0

Twilioチャットの消費の水平線を同期させ、私たちのサーバーからの新しいメッセージのリストで電子メール通知を送信する正しい方法は何ですか?Twilio Programmableチャットで新しいメッセージに関する電子メール通知を設定するには?

私は、新しいメッセージにプリフック/ポストフックを使用できますが、すべてのメッセージとその読み込み状態をデータベースに保存したくありません。

サーバー上で通知を設定するスマートな方法はありますか?

答えて

1

ここではTwilioの開発者のエバンジェリストです。

これをすべて保存する必要はありません。この情報をすべて取得するには、REST APIを使用します。

あなたの行う必要があるのは、ユーザーのチャンネルMember Sidを保存することです。その後、Member resourceに電話をかけ、last_consumed_message_indexを取得することができます。

メンバーがチャンネル内で最後に読み取ったメッセージのインデックスを表すインデックスであるインデックスを使用すると、そのインデックスからMessage resource to list all the messagesを呼び出すことができます。ノードでは、それはそうだろう

service 
    .channels(CHANNEL_SID) 
    .members(MEMBER_SID) 
    .fetch() 
    .then(member => { 
    const lastConsumedMessageIndex = member.lastConsumedMessageIndex; 
    return service.channels(CHANNEL_SID).messages.list({ 
     pageSize: lastConsumedMessageIndex, 
     limit: lastConsumedMessageIndex 
    }); 
    }) 
    .then(messages => { 
    console.log(messages); 
    // do something with unread messages 
    }) 
    .catch(error => { 
    console.error(error); 
    }); 

それがまったく役に立ったら教えてください。

+0

ありがとう@philnash。だから、私はすべてのチャンネルとチャンネルメンバーSIDを保存する必要がありますか?たとえば、5分ごとに新しいメッセージがあるかどうかを確認し、通知を送信する必要があります。うーん... –

+0

ああ、私はまだwebhooksを使って通知をトリガーしますが、チャンネルとメンバーのSIDがあれば、すべてのメッセージも保存する必要はありません。 – philnash

+0

私は全てのチャンネルとメンバーを保存しています。そして、SIDのメンバーとwebhookの新しいメッセージにlastconsumedindexをチェックしてください。 –