LINE Engineering
Blog

LINE BOT & Beacon 開発者向けFAQ(随時更新)

Ryosuke Hasebe 2017.02.13

はじめに

こんにちは、LINE の長谷部です。

LINE BOT AWARDS への締め切りがいよいよ迫ってまいりました。 本イベントに伴って、弊社では諸々ハッカソン/ハンズオン等のイベントをいくつか開催してきましたが、このイベント等でよく聞かれた質問とその回答を本エントリにてご紹介致します。LINE BOT AWARDS にむけて、みなさまの参考になれば幸いです。
※2017/02/13時点での内容となっています

FAQ

1 BOTの作成の仕方がわからない
1_1. step1:事業者を作成/選択する
1_2. step2:BOTを作成する
1_3. step3:LINE@MANAGERの設定
1_4. step4:Developercenterの設定
2 グループとルームに関すること
2_1. グループ,ルームでの発言者のuserIdを取得したい
2_2. BOTをグループとRoomに招待/追加することができない
2_3. グループに参加している人数を取得したい
2_4. グループの名前やアイコン画像を取得したい
3 LINE Beaconに関すること
3_1. LINE Beaconを使いたい
3_2. BOTとLINE Beaconの紐付けはどこからできるの?
3_3. Documentにある`beacon.type`の`banner`を使いたい
3_4. LINE Beaconの仕様が知りたい
4 Developer Centerの設定など
4_1. ServerIPWhitelistは登録しないといけないの?
4_2. DevelopercenterのVerifyボタンを押すと、SDKのexampleでerrorが起きる
4_3. ChannelAccessTokenのリセット/再発行について
5 LINE@Managerの設定など
5_1. Webhookがきません
5_2. BOTが勝手に返事をしてしまいます。
5_3. 公式アカウントのように、リッチメニューを使用したい
6 その他
6_1. (日本において)フリープランとベーシックプランはなにが違うの?
6_2. 非同期でwebhookrequestを処理しないとダメなの?
6_3. Push APIを使用したい
6_4. 複数のユーザーに同じメッセージを送信したい。
6_5. Template messageを送ってもテキストしか表示されない
6_6. Image mapの画像が表示できない
6_7. Audioの拡張子はm4aしかダメなの?
6_8. Webhookは受信失敗したときにリトライしてくれるの?
6_9. userId,groupId,roomIdはどうやって取得するの?
6_10. userIdとLINEIDは違いますか?
6_11. ユーザーのtimezoneを取得することはできますか?
6_12. ユーザーが送ってきたStickerの画像を取得することはできませんか?
7 おわりに

BOTの作成の仕方がわからない

step 1: 事業者を作成/選択する

BOTを作成するには、事業者を登録/選択する必要があります。 すでに作成して選択済であれば、step 2に進んでください。

まず、LINE BUSINESS CENTERの事業者一覧ページにアクセスします。

すでに事業者が登録されている人は、利用したい事業者を選択してください。 選択すると、ヘッダー部分にこのように事業者の名前が表示されます。

まだの人は会社/事業者を追加するをクリックして登録する必要があります。

ここでよく聞かれるのですが、もちろん個人利用も可能です。
個人利用のかたは、登録ページにて個人を選択してください。

作成が完了すると、その事業者がこのように選択された状態になります。

step 2: BOTを作成する

事業者を選択したら、Messaging APIのページにアクセスします。

Messaging APIを始めるDeveloper Trialを始めるのどちらかを選択してください。

Messaging APIを始めるを選択すると、プロプランにしないとPush APIを使用することができません。 個人用途であれば、Developer Trialを始めるを選択することをお勧めします。
※LINE BOT AWARDSの期間中(〜2017/3/18)は、個人エントリーの方には、push APIの制限解除を行っています。ご希望の方はフリープラン以上を利用&エントリー画面にて申請してください。(申請から解除まで、3〜5営業日目安)

次のページでBOTの名前や、アイコン画像を設定します。 個人用途であれば、業種には個人を選択すれば良いです。

確認するをクリックし、確認ページから申し込むをクリックすれば完了です。

LINE@ MANAGERへをクリックし、LINE@ MANAGERへ行きます。

step 3: LINE@ MANAGERの設定

step 1からLINE@ MANAGERへアクセスすると、以下のページにきます。

APIを利用するをクリックしてください。
確認ポップアップが表示されますが、そのまま進みましょう。

次に以下のようなページにきます。

Webhook送信利用するにしましょう。
(ユーザーからメッセージ受信しないBOTの場合は利用しないでもいいですが、あまりそういうケースはなさそうです)

Botのグループトーク参加自動応答メッセージ友だち追加時あいさつはお好みに応じて設定してください。

自動応答メッセージ友だち追加時あいさつに関しては利用しないに設定して良いと思います。webhookを受け取って、BOTからreplyAPIを呼び出せば同様のことができるからです。

step 4: Developer centerの設定

step 2の先程のページから、LINE Developersで設定するをクリックして、Developer centerへいきます。

以下のようなページにきます。

SHOWをクリックすると、webhookの署名検証に使用するChannel Secretを取得できます。
Issueをクリックすると、Messaging APIの呼び出し時に必要なChannel Access Tokenを取得できます。

Editをクリックして、編集ページにてWebhookを受信するサーバーのURLを入力してSaveしましょう。

QRコードをLINEアプリから読み取って、友達登録しておきましょう。

これで、BOTとMessaging APIを利用する準備の完了です。

グループとルームに関すること

グループ, ルームでの発言者の userId を取得したい

グループとルームにおいては、不可能となっています。
ユーザーとの1対1の会話でのみ可能となります。

BOT をグループと Room に招待/追加することができない

LINE@ MANAGER に BOT がグループとルームに参加できるようにするための設定があります。
許可するようにしてください。

[アカウント設定 > BOT設定]

また、すでに他のBOTが参加中の場合は招待/追加することはできません。

グループに参加している人数を取得したい

グループに参加している人数は提供していません。

グループの 名前やアイコン画像を取得したい

上記と質問と同様に、グループの名前やアイコンの情報は提供していません。

LINE Beaconに関すること

LINE Beaconを使いたい

こちらのサイトからご購入頂けます。

BOTとLINE Beaconの紐付けはどこからできるの?

LINE@ Managerのこのページから設定することができます。

Documentにある `beacon.type` の `banner` を使いたい

こちらの利用はビジネスコネクトの契約が必要です。ご希望の際は、 LINE Partner よりお問い合わせ下さい。

LINE Beaconの仕様が知りたい

以前、ブログにてご紹介しています。こちらをご覧ください。
https://engineering.linecorp.com/ja/blog/detail/89

Developer Centerの設定など

Server IP Whitelist は登録しないといけないの?

登録する必要はありません。

制限をかけたい場合は、登録すれば良いです。

Developer center の Verify ボタンを押すと、SDKのexample で error が起きる

Verify ボタンを押したときにくる webhook に含まれる replyToken は 無効な値となっています。
そのため、reply API の呼び出しに失敗してerrorになってしまいます。

少々"Verify"という表現がわかりにくいかもしれませんが、こちらの Verify は疎通確認/有効なSSLの設定かどうかを確認するためにご使用ください。

[Channels > Basic information]

Channel Access Tokenのリセット/再発行について

[Channels > Basic information]

こちらから、Channel Access Tokenをリセット/再発行することができます。

このようなポップアップダイアログがでます。このダイアログで指定した時間数経過した後、以前のアクセストークンが失効します(新しく発行したアクセストークンではありません)

LINE@ Manager の設定など

Webhook がきません

LINE@ Manager にて Webhook の設定が無効になっている可能性があります。
こちらを有効にしてみてください。

[アカウント設定 > BOT設定]

BOTが勝手に返事をしてしまいます。

LINE@ Manager にて自動応答が無効になっているかと思います。 LINE@ Manager から有効にしてみてください。

[アカウント設定 > BOT設定]

公式アカウントのように、リッチメニューを使用したい

talk room 下部のこの部分のことをリッチメニューといいます

LINE@ Manager から 設定/作成することができます。

[リッチコンテンツ作成 > リッチメニュー]

その他

(日本において)フリープランとベーシックプランはなにが違うの?

Messagin APIに関しては、特に違いはありません。
https://business.line.me/ja/services/bot

LINE@機能に関しては、このような違いがあります。
http://at.line.me/jp/plan

非同期で webhook request を処理しないとダメなの?

しばしば、このようなご質問をイベント後の懇親会にて受けます。

確かに、ものすごく友達数が多い公式アカウントの場合などでは必要になるケースもありますが、通常のBOTでは特に必要ありません。
非同期処理のためのQueue server等は必要ありませんので、まずはご気軽にWeb serverのみでご使用してみてください。

Push API を 使用したい

Push APIを使用できるのは有料プラン、もしくはDeveloper Trial プランのみとなっています。

プランの詳細についてはこちらをご覧ください。
https://business.line.me/services/bot

ただ、LINE BOT AWARDSにお申込みいただいたアカウントに関しては開催中に限り、Push APIを使用できる権限が付与されます。作成中のBOTでも可能です。

複数のユーザーに同じメッセージを送信したい。

Multicast API を先日追加致しました。こちらを使用することで可能となります。

ただし、以下の点にご注意ください。

  • Push API を使用できる権限が必要となります。
  • groupId と roomId を指定することはできません。

Template message を送ってもテキストしか表示されない

新しく追加された Template message ですが、現状はiOS/Android端末でしか表示することができません。それ以外の端末では、"altText"で指定したテキストが表示されます。

Imagemapの画像が表示できない

Imagemapに使用する画像は、base URLの末尾に、クライアントが要求する解像度を横幅サイズ(px)で付与したURLでダウンロードできるようにしておく必要があります。

例として、base URLに以下を指定した場合、

https://example.com/images/cats

クライアント端末が幅700pxの解像度をダウンロードするURLは以下になります。

https://example.com/images/cats/700

上記はDocumentからの引用です。

しばしば、https://example.com/images/cats/700.pngのように拡張子を含めてしまっている方が多いように思います。拡張子を含めることはできません。

Audioの拡張子はm4aしかダメなの?

m4aにしか対応しておりません。

外部サービス等がmp3しか対応していない場合は、ffmpeg等でエンコードして頂く形になります。

Webhookは受信失敗したときにリトライしてくれるの?

リトライはしません。

userId, groupId, roomId はどうやって取得するの?

基本的には、webhook 経由で取得することになります。 Follow Event の userId や、Join Event の groupId/roomId は保存しておくと便利かもしれません。

また、userId に関してはLINE Login機能から取得することもできます。

userIdとLINE IDは違いますか?

はい、違います。
ですので、Push API等にLINE IDを指定することはできません。

ユーザーの timezone を取得することはできますか?

現状は、不可能です。

ユーザーが送ってきたStickerの画像を取得することはできませんか?

申し訳ありませんが、できません。
packageId と stickerId のみの取得になります。

おわりに

以上、よくある質問に対する回答についてまとめてみました。

引き続き LINE BOT AWARDS の応募を受け付けておりますのでドシドシご応募ください!

LINE BOT AWARDS Bot Beacon

Ryosuke Hasebe 2017.02.13

Add this entry to Hatena bookmark

リストへ戻る