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版」という本を書きました。
![](https://www.sbcr.jp/wp-content/uploads/2023/01/9784815617929-1-407x596.jpg)
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
![](https://www.sbcr.jp/wp-content/uploads/2024/01/9784815625382-3-420x596.jpg)
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
![](https://www.shuwasystem.co.jp//images/book/637791.jpg)
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
![](https://book.mynavi.jp/files/topics/135344_ext_06_0.jpg?v=1673514682)
「AWSではじめるLinux入門ガイド」という本を書きました。
![](https://www.yamamanx.com/wp-content/uploads/2023/12/81Rp5O9We6L._SY522_.jpg)
![@yamamanx](https://www.yamamanx.com/wp-content/plugins/lazy-load/images/1x1.trans.gif)
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
AWS Client VPNの接続ログを確認しました
AWS Client VPNを設定しましたで証明書とかせっかく作ったので、いろい …
-
-
AWS認定SAPの執筆開始にあたって環境を構築しました
AWS認定ソリューションアーキテクトプロフェッショナル対策本の執筆開始にあたりま …
-
-
再会の日 ~re:Union 2018 Osaka by JAWS-UG~
8/5は大阪でre:Unionでした。 「再会」と名うったこのイベントは、6月に …
-
-
AMIをOrganizations組織で共有しました
よく使うAMIをOrganizations組織内のリソースパブリッシュ用のアカウ …
-
-
JAWS-UG関西IoT専門支部 ✕ SORACOM UG 関西「Wio LTE + 絶対圧センサーで遊ぼう!」ワークショップにいってきた
JAWS-UG関西IoT専門支部 ✕ SORACOM UG 関西「Wio LTE …
-
-
静的と動的って何ですか?と営業さんに聞かれたので端的に説明してみました
AWS認定クラウドプラクティショナーの勉強をしている営業さんに、「S3で静的オブ …
-
-
Amazon S3オブジェクトロック
S3のオブジェクトロックを確認しました。 オブジェクトロックの有効化 現在、既存 …
-
-
Backlogの実績工数をAmazon QuickSightで可視化してわかったこと
今年に入ってから、Backlogで個人タスクを登録しだして、予定工数、実績工数を …
-
-
EFSのマウントターゲットがデフォルトで作成されるようになってました
ひさしぶりにAmazon EFSファイルシステムを作成しました。 作成手順がすご …
-
-
Cloud9 Python3でpipも3にする
このブログは、2019/10/20に書いた、 Cloud9のAMIがCloud9 …