meideru blog

情報系エンジニアのmeideruが書いているブログです。エンジニア寄りの話から日々の出来事まで色々と書いています。

LINEのMessaging APIを使ってみた

      2018/07/05

やりたいことがあって、LINEのMessaging APIを使ってみました。

LINE

備忘録も兼ねて簡単に記事に書きたいと思います( ̄▽ ̄)

やること

とりあえず、Pythonを使って誰かにラインのメッセージを送ってみたいと思います。

そのために、以下の作業を行います。

  1. SSL対応のウェブサーバを立ち上げる。
  2. Webhook用のプログラムを書く。
  3. メッセージ送信用のプログラムを書く。

詳細については以下に書きます。

実際にやってみた

では早速、作業に入りたいと思います。

あ、そうそう。LINE DevelopersやMessaging APIとかの登録は一切説明しません。他の人のブログにたくさん載っているので、私があえて説明する必要はないかと思いまして…。

わからないときはグーグル先生に聞いてくださいw

SSL対応のウェブサーバを立ち上げる

送信先のuserIdやgroupIdを取得するためにSSL対応のウェブサーバを立ち上げる必要があります。

おそらく、この作業が一番めんどうだと思います。何が面倒ってウェブサーバがSSL対応じゃないといけない点ですね。

セキュリティのことを考えたら当然だと思うのですが、遊び程度でちょっとだけMessaging APIを使ってみたい人には敷居が高すぎる。別に普通のhttpでいいじゃん、なんて思ったりしますw

そんなことはさておき、ウェブサーバを立ち上げましょう。

今回はDocker + Nginx + Let’s EncryptでSSL対応のウェブサーバを構築したいと思います。

やり方は以下の私の記事に書いてあります。

久しぶりにウェブ開発の話です。最近、新しいウェブサービスを立ち上げるために、Docker + Nginx + PHP + Let's Encrypt で環境を構築しました。色々とわからないことが多くて調べまくりましたw今日は備忘録も兼ねて記事を書き思ました。想定している環境 Ubun...

こちらを参考にすれば、簡単に構築することができます。

Webhook用のプログラムを書く

WebhookについてはQiitaのページにわかりやすい説明がありました。

Webhookを利用した記事はよく見かけますがそもそもWebhook自体が何なのか、何を指しているのかよくわからなかったため、それに関しての備忘録です。# Webhookとは?- アプリケーションの更新情報を他のアプリケーシ...

 

botがLINEのメッセージを受け取ったときに、その情報が書かれているJSONファイルを受け取るPHPのプログラムを書きます。いわゆるREST APIというやつですね。

プログラムは以下の通りです。

 

logDirは受け取ったJSONファイルを保存するディレクトリです。任意のパスに書き換えてください。

このプログラムを先ほど立ち上げたウェブサーバ上に置いてください。

最後に、LINE DevelopersのページのWebhookのURLの欄に「自分のドメイン + line_callback.php」のURLを設定してください。(例: https://example.com/line_callback.php)

これで作成したbotにメッセージを送ると、指定したディレクトリにJSONファイルが作成され、userIdやgroupIdが取得できるはずです。

メッセージ送信用のプログラムを書く

送信部はみんなが大好きなPythonで書きます。

 

書き換える部分は全部で3つです。CHANNEL_ACCESS_TOKENとtoとmsgです。

CHANNEL_ACCESS_TOKENは、LINE Developersから得られる文字列です。作成したbotを特定するためのもので、他人には教えてはいけません。

toはJSONから取得したuserIdかgroupIdです。

msgは送りたいメッセージです。

以上のプログラムを実行して、レスポンスコードが200になれば指定したuserIdかgroupIdにメッセージが送れているはずです。

簡単ですね!

まとめ

SSL対応のウェブサーバを立てるのがめんどうなだけで、他はとても簡単だと思います。

私は、やりたいことがあるので、Messaging APIを試してみました。

近いうちに、やりたいことの成果を記事に書きたいと思いますので、そちらもよろしくお願いします。

 - プログラミング