はじめに
注意:現時点で動かせてません。
本文
昨日みつけた LINE のチャンネルを試してみました。ドキュメントもあるのでそっち見てもOK
LINE の Developers Console で適当にプロバイダーを作ります(すでにあるならそれを使ってもいい) プロバイダーがないとボットとかも作れないので。プロバイダーが同じボットや Clova のスキルはユーザーを識別するための ID が同じになるので、ユーザーデータを共有する仕組みが作りやすい点が強いです。
さて、作ったら Messaging API を作りましょう。必須入力項目は全部なので全部入れましょう。 プランはフリーでも大丈夫です。(Push Messages を使用しないなら)
作成した Messaging API を選択してチャンネル基本情報から以下の値をゲットします。
- Channel Secret
- アクセストークン(再発行ボタンを押して作成してください。とりあえず 0 時間で)
Azure ポータルに移動して LINE 対応させたいボットのボット チャンネル登録を選択してチャンネルを開きます。そして LINE のアイコンをクリックします。
先ほど取得した Channel Secret とアクセストークンを入れる場所があるので入れます。
入力したら、その下にある Webhook URL をコピーしておいて保存しておきます。
LINE の Developers Console に移動します。
そして、先ほど作成した Messaging API のチャンネル基本情報に Webhook URL という項目があるので編集ボタンを選択して Azure ポータルでコピーした URL を貼ります。
接続確認ボタンを押して成功すれば OK
そして、デフォルトでは Webhook 送信が有効化されてないので有効化します。
ボットをちゃんと作ってると LINE の自動応答メッセージは邪魔になることもあるので、その場合はLINE@機能の利用から自動応答メッセージをオフにします。
同じページに LINE アプリへの QR コードという項目があるので LINE アプリから登録してみましょう。
現時点で成功してない
話しかけても応答がない。一応このボットは Microsoft Teams と WebChat で動いてるけど LINE で話しかけたときだけ以下のようなエラーが Application Insights に出てきてる。
Message POST to ボットの名前 failed: POST to the bot's endpoint failed with HTTP status 500 POST to the bot's endpoint failed with HTTP status 500 Exception type System.Exception Failed method Microsoft.Bot.ChannelConnector.BotAPI+<PostActivityToBotAsync>d__31.MoveNext
コールスタックはこんな感じ。
Microsoft.Bot.Schema.BotException: at Microsoft.Bot.ChannelConnector.BotAPI+<PostActivityToBotAsync>d__31.MoveNext (Microsoft.Bot.ChannelConnector, Version=3.2.2.5, Culture=neutral, PublicKeyToken=null) Microsoft.Bot.ChannelConnector.BotAPI+<PostActivityToBotAsync>d__31.MoveNext で処理された内部例外 System.Exception: at Microsoft.Bot.ChannelConnector.BotAPI+<PostActivityToBotAsync>d__31.MoveNext (Microsoft.Bot.ChannelConnector, Version=3.2.2.5, Culture=neutral, PublicKeyToken=null)
ん~、なんだろう時間が解決する系??