APIを使ってLINEボットを作成する方法を説明します。サンプルボットのデプロイから始めたい場合は、「Herokuでサンプルボットを作成する」を参照してください。始める前に以下の作業が完了していることを確認します。ボット用のチャネルを作成する。ボットをホストするサーバーを用意する。Herokuのようなクラウドプラットフォームサービスを利用できます。チャネルアクセストークンを発行するチャネルアクセストークンは長期間有効なアクセストークンで、APIを呼び出すときにAuthorizationヘッダーに設定する必要があります。チャネルアクセストークンはいつでもコンソールで再発行できます。API設定]タブの[チャネルアクセストークン(ロングターム)]の[発行]をクリックします。URLはボットサーバーのエンドポイントで、Webhookペイロードの送信先です。APIのチャネルがあるプロバイダーをクリックします。APIのチャネルをクリックします。API設定]タブをクリックします。URL(LINEプラットフォームからボットにイベントを送信する際の送信先URL)を入力して、[更新]をクリックします。URLにはHTTPSを使用し、認定認証局で発行されたSSL証明書を設定する必要があります。[検証]をクリックします。URLでWebhookイベントを受け取ると、「成功」と表示されます。[Webhookの利用]を有効にします。LINE公式アカウントを友だち追加するボットを設定したチャネルに紐付けられたLINE公式アカウントを友だち追加します。API設定]タブにあるQRコードを読み取ります。セキュリティを設定する(任意)コンソールのチャネル設定の[セキュリティ設定]タブで、LINEプラットフォームのAPIを呼び出せるサーバーを設定して、セキュリティを向上させることができます。Routing)記法を使用することができます。POSTリクエストが、LINEプラットフォームから送信されます。このリクエストのヘッダーには署名が含まれます。ここでは、Webhookイベントを正常に受信できるかどうかの確認と、Webhookイベントの署名の検証の方法について説明します。Webhookイベントを受信するボットサーバーで、Webhookイベントを受信できるかどうか確認するには、LINEでLINE公式アカウントをブロックして、ボットサーバーがLINEプラットフォームからフォロー解除イベントを受信したかどうかをログで確認します。timestamp=2017-07-21T09:18:46.031Z)Webhookが正常に動作することを確認した後で、再びLINE公式アカウントを友だち追加します。署名を検証するリクエストがLINEプラットフォームから送られたことを確認するために、ボットサーバーでリクエストヘッダーのX-Line-Signatureを検証する必要があります。チャネルシークレットを秘密鍵として、HMAC-SHA256アルゴリズムを使用してリクエストボディからBase64でエンコードされたダイジェスト値を生成します。リクエストヘッダーにあるX-Line-Signatureの署名がダイジェスト値と一致することを確認します。Python®で署名の検証を実装する例は以下のとおりです。APIリファレンス』の「[署名を検証する][validate-signature]」を参照してください。POSTリクエストが、LINEプラットフォームから送信されます。Webhookイベントオブジェクトに含まれるデータに基づいて、ボットの動作を制御したり、ユーザーの要求に答えたりできます。1対1のチャットでは以下のWebhookイベントを受信できます。APIリファレンス』の「Webhookイベントオブジェクト」を参照してください。ユーザーがメッセージを送信したことを示すイベントです。このイベントには応答できます。LINE公式アカウントが友だち追加またはブロック解除されたことを示すイベントです。このイベントには応答できます。LINE公式アカウントがブロックされたことを示すイベントです。LINE公式アカウントがグループまたはトークルームに参加したことを示すイベントです。このイベントには応答できます。ユーザーがグループからボットを削除したか、ボットがグループまたはトークルームから退出したことを示すイベントです。ボットがメンバーになっているグループまたはトークルームにユーザーが参加したことを示すイベントです。このイベントには応答できます。ボットがメンバーになっているグループまたはトークルームからユーザーが退出したことを示すイベントです。ユーザーが、ポストバックアクションを実行したことを示すイベントです。このイベントには応答できます。ビーコンの電波の受信圏にユーザーが入ったことを示すイベントです。このイベントには応答できます。詳しくは、「ビーコンを使う」を参照してください。ユーザーがLINEアカウントとプロバイダーが提供するサービスのアカウントを連携したことを示すイベントです。このイベントには応答できます。詳しくは、「ユーザーアカウントを連携する」を参照してください。ユーザーの操作により、デバイスとLINEが連携されたことを示すイベントです。ユーザーの操作により、デバイスとLINEの連携が解除されたことを示すイベントです。自動通信のシナリオが実行されたことを示すイベントです。グループチャットに特有のWebhookイベントについて詳しくは、「グループチャット」を参照してください。エンドポイントにリクエストを送る以下の操作を実行できます。応答メッセージを送るプッシュメッセージを送るユーザーが送ったコンテンツを取得するユーザープロフィール情報を取得する応答メッセージを送る応答メッセージは、ユーザーがLINE公式アカウントを友だち追加したり、LINE公式アカウントにメッセージを送ったりなどして生成されるイベントに対して、LINE公式アカウントからユーザーに対して送信するメッセージです。応答メッセージは、応答トークンを含むWebhookイベントのみに対して送信できます。POSTリクエストを/bot/message/replyエンドポイントに送ります。Authorizationヘッダーにはチャネルアクセストークンを、ボディには応答トークンを含めます。1回のリクエストでメッセージオブジェクトを最大5つまで送信できます。APIを使用して送れるメッセージのタイプについて詳しくは、「メッセージタイプ」を参照してください。APIリファレンス』の「応答メッセージを送る」を参照してください。プッシュメッセージを送るプッシュメッセージは、任意のタイミングでユーザーに送信できるメッセージです。応答メッセージとは異なり、プッシュメッセージには応答トークンは不要です。メッセージの送信先に応じて、POSTリクエストを以下のエンドポイントに送信します。宛先を指定してメッセージを送るときは、toプロパティにユーザーIDを指定します。送信先のIDは、Webhookイベントオブジェクトに含まれています。1回のリクエストでメッセージオブジェクトを最大5つまで送信できます。APIを使用して送れるメッセージのタイプについて詳しくは、「メッセージタイプ」を参照してください。APIリファレンス』の以下のセクションを参照してください。GETリクエストを[/bot/message/{messageId}/content][content-ref]エンドポイントに送ります。削除されることに注意してください。APIリファレンス』の「[コンテンツを取得する][content-ref]」を参照してください。GETリクエストを/bot/profile/{userId}エンドポイントに送信します。このリクエストはユーザーの表示名、ユーザーID、プロフィール画像のURL、ステータスメッセージ(設定されている場合)を返します。token}'成功した場合、JSONオブジェクトが返されます。APIリファレンス』の「プロフィールを取得する」を参照してください。ManagerはLINE公式アカウントを管理するツールです。APIで提供される機能を利用するほかにも、アカウントページをカスタマイズしてユーザーエクスペリエンスを向上したり、タイムライン投稿を作成したり、さまざまな機能を利用できます。Connect」ページを参照してください。アカウントページをカスタマイズするアカウントページには、LINE公式アカウントに関する基本的な情報を設定します。ここで設定する情報はユーザーに表示されます。Managerにアクセスして、LINE公式アカウントの基本情報を追加します。カバー画像、ロゴ、ボタン、提供する情報をカスタマイズできます。Managerを表示すると、ユーザーがLINE公式アカウントを友だち追加したときに送信されるあいさつメッセージを設定できます。別の方法として、Webhookフォローイベントを受け取ってからユーザーへプログラム的に応答することもできます。Managerを表示すると、ユーザーがLINE公式アカウントにメッセージを送信したときに、LINE公式アカウントから自動送信される自動応答メッセージを設定できます。APIを使用すれば、Webhookイベントの内容に合わせた応答を返すようにボットをプログラムできるため、より多くの処理を実行できます。次のステップボットの設定が終われば、ユーザーからのメッセージを受信したり、LINE公式アカウントからユーザーにメッセージを送信したりできます。LINE公式アカウントからユーザーにメッセージを送信するだけでなく、クイックリプライ機能や、リッチメニューを使って、ユーザー個人に合わせた体験を提供できます。APIドキュメント』の各ページを参照してください。ThingsでWebhookイベントを受信するためにボットを作成した場合は、「メッセージ(Webhook)を受信する」の説明に従ってWebhookイベントを処理してください。