Twilio Flex v2.x.x系でLINE連携を実装する方法

はじめに

この記事は、ギークフィードアドベントカレンダー2024の23日目の記事です。

ギークフィードの有志が毎日ブログを投稿しているので是非チェックしてみてください。

今回は業務上Twilio FlexとLINEを連携する機能を実装する必要があったのですが、

実装方法を調べてもバージョン1系で利用可能だったこちらで発表されているようなTwilio Channelを使った実装方法しか見つけられなく、そちらは現在LINEのサポートを終了していたため途方に暮れてしまいました。

そんな中Twilioの方とコンタクトを取れ、Twilio Flexの開発を担当しているエンジニアの方から情報をお伺いすることができたのでそちらの実装方法をご紹介いたします。

結論

先に結論を書きます。

以下のプラグインを導入すると簡単にLINEとの連携を実装することができます。

 

Conversations Adapters

 

こちらは私の検索の方法が悪かったのか、SEOが弱いのか検索しても見つけられなかったので本記事に同じ境遇のエンジニアの方が辿り着き役に立てていただければ幸いでございます。

プラグインに書いてある通り導入をしたら実装できるのですがそれではこの記事が味気ないかと思いますので簡単に私の方でカスタマイズした機能とその実装方法をご紹介いたします。

プラグインのカスタマイズ方法

プラグインをそのまま導入すると公式LINEにチャットが来た時点ですぐにオペレーターとのチャットが始まってしまいます。

しかし企業用のLINEではすぐに有人チャットに入るのではなくある程度システム的なチャットボットを入れてスクリーニングしたいと思うはずです。

こんなイメージですね。

こちらの機能を実装する方法についてご紹介いたします。

自動応答

プラグインでフォークしたソースコードの「serverless-functions/src/functions/api/line/incoming.ts」を変更する必要があります。

こちらはLINE MessageAPIのWebhookURLに設定してあるTwilio Functionsで動くソースコードなのでここを変更するとLINEから入ってきたメッセージに対してカスタマイズができます。

今回は、LINEのリッチメニューで「LINEで質問」というメニューとLINE Official Account Managerの設定でそのメニューを押したらユーザーに「LINEで質問」というメッセージを送らせるように設定しているので「LINEで質問」というメッセージが入ってきた時に上の画像のように自動応答をする機能をカスタマイズ開発していきます。

※今回はLINE リッチメニューの実装方法やLINE Official Account Managerの設定に関する説明は本題ではないので省略させていただきます。

フォークしたての頃はincoming.tsにはこのようになっているかと思います

このwrappedSendToFlex関数内でFlexオペレーターとの有人チャット機能を実装しているので「LINEで質問」というキーワードで入ってきた場合に自動応答チャットを実装してあげる必要があります。

あとはwrappedSendToLineResolverを実装します。

こんな感じです。

ここまでカスタマイズしたら上で紹介したような自動応答メッセージを実装できます。

これで完成なのですが、今回Flexのチャットにattributesを設定したかったのでwrappedSendToFlex関数の方にもカスタマイズをしたのでそのご紹介もいたします。

attributesの設定方法

wrappedSendToFlex関数はline.helper.private.tsにあります

上で紹介したwrappedSendToLineResolver関数も私はline.helper.private.tsファイルに格納して実装いたしました。

こんな感じですね。
合わせて「serverless-functions/src/functions/api/common/common.helper.private.ts」のtwilioCreateMessage関数なども以下の様に変更を加える必要があります

ここまで追っていたらフォークしたソースコードにどのように処理を追加することでカスタマイズができるのかわかる様になったかと思います。

反映にはGithubリポジトリにpushしプラグインに紹介されている通りGithub Actionsを動かすことで反映することができます。

最後に

この記事がどなたかの参考になったら幸いでございます。

他にも技術ブログをあげているのでそちらもよろしければ見ていってださい。

私のブログ記事一覧

 

また、株式会社ギークフィードでは開発エンジニアなどの職種で一緒に働く仲間を募集しています。

弊社に興味を持っていただいたり、会社のことをカジュアルに聞いてみたいという場合でも、ご気軽にフォームからお問い合わせください。その場合はコメント欄に、カジュアルにお話したいです、と記載ください!

採用情報はコチラ

 

この記事が気に入ったら
いいね ! しよう

Twitter で

【採用情報】一緒に働く仲間を募集しています

採用情報
ページトップへ