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」ってします。
これだけでオウム返しが出来ました。
この先は送信されたメッセージをどう扱うか、
どういった内容を送信するか、
コーディングしてけばいいと思います。
最後までお読みいただきましてありがとうございました!
【PR】 「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
【PR】 「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第2版」という本を書きました。
【PR】 「ポケットスタディ AWS認定 デベロッパーアソシエイト」という本を書きました。
【PR】 「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
【PR】 「AWSではじめるLinux入門ガイド」という本を書きました。

開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
AWS CodeStarのプロジェクトテンプレートLambda+Pythonによって生成されるもの
勉強会のデモで、AWS CodeStarのプロジェクトテンプレートLambda+ …
-
-
Route53でドメインを新規取得してDNSレコードを設定する
Elastic IPをAWSで発行しているのですから、DNSの設定も同じようにマ …
-
-
前からできましたっけ??CloudWatch Logsの保持設定を複数まとめて設定
AWSの個人アカウントで要らなさそうなリソースの断捨離をしてます。 CloudW …
-
-
オンプレミスに見立てたオハイオリージョンにVyOSインスタンスを起動して東京リージョンからVPN接続
AWSクイックスタートのActive Directory Domain Serv …
-
-
再会の日 ~re:Union 2018 Osaka by JAWS-UG~
8/5は大阪でre:Unionでした。 「再会」と名うったこのイベントは、6月に …
-
-
Lambda関数で自分自身の環境変数を更新する
Twitterでツイート検索するAPIを試してみるでツイートの取得を重複させない …
-
-
EC2にSystems MangerからCloudWatchエージェントをインストール
CloudWatchエージェント EC2の標準メトリクスでは収集できないメモリの …
-
-
Amazon Auroraのスナップショットの暗号化とリージョン間コピーを改めて試しました
Amazon Auroraデータベースを暗号化して、スナップショットを作成、クロ …
-
-
S3バケットポリシーですべてDenyにしてしまったらルートユーザーの出番
特定のConditionsを指定して、それ以外はすべて拒否するS3バケットポリシ …
-
-
AWS CLIを使用したIAMロールの引き受けコマンドのメモ
よく忘れて調べるのでメモです。 公式のこちらAWS CLI を使用して IAM …