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認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
関連記事
-
-
AWSクイックスタートのActive Directory Domain Services on AWS
オンプレミスに見立てたActive Directory環境がほしかったので、AW …
-
-
Application Load Balancer スティッキーセッションでどれぐらい偏るかを偶然見ました
Amazon Linux2のPHPを7.2から7.3へアップデートしましたでアッ …
-
-
Amazon SESの受信ルールでSNSトピックを追加
SESの受信ルールにSNSトピックを設定してみました。 [View Active …
-
-
AWS Summit 2016 Tokyoに参加してきました (Day3)
飛天3日目です。 JAWS-UGブースのすぐ前にあったこのお水がめちゃめちゃおい …
-
-
JAWS-UG関西「AI で人を笑わせてみよう!ハンズオン」に参加しました
AI で人を笑わせてみよう!ハンズオン 灼熱の7月最終日にJAWS-UG関西のオ …
-
-
LINE BOT AWARDS 2017に応募しました
LINEの友達追加QRです。 動作のご確認にどうぞ LINE BOT AWARD …
-
-
AWSアカウント内のCloudWatchアラームを削除する
やりたいこと 特定アカウント特定リージョン内のCloudWatdchアラームを全 …
-
-
AWS CLIを使用したIAMロールの引き受けコマンドのメモ
よく忘れて調べるのでメモです。 公式のこちらAWS CLI を使用して IAM …
-
-
AWS SSOのパスワードリマインダーでADのパスワードを変更
AWS Managed Microsoft ADを構築してユーザー追加までで構築 …
-
-
Lucidchart AWSアカウントからインポート機能で自動作図
SNSでLucidchartというサービスが話題になってました。 AWSの環境を …

