LINE Bot APIのファーストステップをLambda+API Gatewayでやってみたらものすごく簡単で驚いた
トライアル当初はホワイトリストのしばりや、初回反応するまで時間がかかったりとみなさん困っていたようですが、遅ればせながらやってみると色々解消されているようで、すさまじく簡単に、Botのハローワールド、Lチカともいえるオウム返しが確認出来ましたので一応メモ。
本記事の情報は2016/8/14時点のものです。
目次
Lambda(Python)のコード
GitHubはこちらです。
1 2 3 4 5 6 7 8 9 |
LINEBOT_API_EVENT ='https://trialbot-api.line.me/v1/events' LINE_HEADERS = { 'Content-type': 'application/json; charset=UTF-8', 'X-Line-ChannelID':'xxxxxxxxxxx', 'X-Line-ChannelSecret':'xxxxxxxxxxxxxxxxxxxx', 'X-Line-Trusted-User-With-ACL':'xxxxxxxxxxxxxxxxxxxxxx' } |
Headersの各値
LINE Developersのアカウント画面からコピペします。
- X-Line-ChannelID : チャンネルID
- X-Line-ChannelSecret : チャンネルシークレットキー
- X-Line-Trusted-User-With-ACL : チャンネルMID
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
msg = event['result'][0] text = msg['content']['text'] from_id = msg['content']['from'] content = { 'contentType':1, 'toType':1, 'text':text } send_msg = { 'to':[from_id], 'toChannel':1383378250, 'eventType':'138311608800106203', 'content':content } post_response = requests.post(LINEBOT_API_EVENT,headers=LINE_HEADERS,data=json.dumps(send_msg)) logger.info(post_response) |
bot宛に送信されたメッセージをevent[‘result’][0]で取得してます。
textにメッセージ内容とfrom_idにLINEのIDを取得してます。
- to : 150ユーザーが上限の配列
- toChannel : 1383378250が共通固定値
- eventType : ‘138311608800106203’が共通固定値
- contentType : 1 Text,2 Image,3 Video,4 Audio,7 Location
- toType : 1 toUserそれ以外は不明
LambdaとAPI Gatewayの設定
何も特別な事はいりません。
上記のコードをrequestsモジュールとまとめていつものようにzipをアップロードするだけです。
API Gatewayもレスポンスやリクエストの設定は何も変更していません。
LINE側の設定
Callbak URLにAPI GatewayのエンドポイントURLを指定します。
が、そのままではセキュリティがだめ、って怒られるので、ポート番号443をつけます。
具体的には、「amazonaws.com」を「amazonaws.com:443」ってします。
これだけでオウム返しが出来ました。
この先は送信されたメッセージをどう扱うか、
どういった内容を送信するか、
コーディングしてけばいいと思います。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。


開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
AWS Secrets ManagerのローテーションでLambda関数の管理が必要なくなりました
Amazon RDS と AWS Secrets Manager の統合を発表と …
-
-
ヤマムギvol.23 Amazon RDS for MySQLとAmazon Aurora Serverlessの起動のデモをしました
ゴールデンウィーク毎朝デモ勉強会は終わったのですが、土曜日にやれるときがあれば、 …
-
-
VPCピア接続ではピア先VPCのセキュリティグループIDを指定できる
タイトルどおりです。 できることは知ってたのですが、試したことがなかったので、確 …
-
-
AWS License ManagerでAMIからインスタンスの起動を制御
EC2 Image BuilderでRocket.ChatのAMIを作って起動テ …
-
-
AWS Managed Microsoft ADを構築してユーザー追加まで
事前準備 DNSホスト名と名前解決を有効にしたVPCを作成して、2つのAZにパブ …
-
-
JAWS-UG関西「AI で人を笑わせてみよう!ハンズオン」に参加しました
AI で人を笑わせてみよう!ハンズオン 灼熱の7月最終日にJAWS-UG関西のオ …
-
-
「JAWS-UG朝会 #18」で主にAWSなブログについて発表をしました
ラジオ体操 いつものラジオ体操から。 今日はラーニングセンターから配信の日でした …
-
-
GoogleForm,GASからAPI Gateway, Lambdaで入力情報をDynamoDBに格納する
vol.26 AWS認定試験テキスト認定クラウドプラクティショナーのデモ(Dyn …
-
-
AWS Transit Gateway Network ManagerにTransit Gatewayを登録してルートアナライザーで確認
グローバルネットワークの作成 VPC左ペインのメニュー Transit Gate …
-
-
Cloud9環境を共有した際の環境認証
Cloud9を環境を構築したIAMユーザー以外に共有したとき、その環境から実行す …