エミ眠太の自由帳
 エミ眠太の自由帳
    
 
 基本      2023-10-15      

PythonからLINEに通知する仕組みを作ってみた。

Language:
 Python
Framework/Library:
 Messaging API
Technology:
 Web API
Platform/Tool:
 LINE Developers

記事一覧へ

目次


はじめに

物事を極めるために「継続は力なり」よく言われますが、慣れないこと・得意でないことだとつい逃避行動に走ってしまうのが人の性。でも上手く仕組み化さえできれば用を足すかの如く案外習慣化するものです。私の場合、「今年こそは資産運用に力を入れたい」と年初の抱負で毎年語るのですが、結局1年経っても資産は微増です。そこでまずは簡単なことから習慣化してみようということで「注目している銘柄の株価を毎日確認すること」だけやってみたいと思います。それを実現するために、毎日確実に利用するSNSであるLINEで通知されるようにすれば、アプリアイコン上の「通知バッジ」は消さないと気が済まない自らの性に合うと思ったのでその仕組みのベースをまずは作ってみます。※株価情報取得との組み合わせはまた別途まとめます。

ステップ

今回は下の2つのステップで仕組みを作りたいと思います。

  1. LINE Messaging API側の準備
  2. Pythonで実装

1. LINE Messaging APIの設定

「LINE Messaging API」とはLINEが提供するAPIで、メッセージ送付の自動化等ができるものです。これの利用にあたっては「LINE Developers」への登録が必要となります。

LINE Developersへの登録

LINE Developers登録には既存のLINEアカウント・ビジネスアカウントからも作成可能でメールアドレスさえあれば新規作成も可能なようです。ただし、ビジネスアカウントで作成すると後ほど出てきますが"あなたのユーザーID"が非表示となり今回やりたいことができなくなってしまうため、今回は既存のLINEアカウントで作成しましょう。諸々情報入力して登録が完了したら、ここから"今すぐはじめよう"でMessaging APIを利用するためのチャネルを作成します。

チャネル作成

チャネル作成についても基本的には利用情報を入力するだけですが、以下2点については一応仕組みを理解しておきましょう。

  • プロバイダー・・・チャネルを束ねる開発者の管理情報です。既に作成済みであればそれを選択すれば良いですが今回は初めてなので、「新規プロバイダー作成」を選択してプロバイダー名を入力し、新しく作成しましょう。
  • チャネル・・・プロバイダーによって作成されるサービスのことを指します。1プロバイダーに対して、チャネルは複数作成し紐付け可能です。

詳しくは公式ドキュメントにも記載があります。

アクセストークン発行

続いてAPIを利用するためのアクセストークンを発行します。 上のセクションでチャネル作成は完了したと思いますが、そのチャネル内に"Messaging API設定"タブがあるのでこれをクリックし、画面最下部までスクロールします。すると(上の画像では隠れていますが)"チャネルアクセストークン"の"発行"というボタンがあるのでこれをクリックするとアクセストークンが発行できるので、安全な場所に一度保管しておいてください。

続いて、同チャネル内"Messaging API設定"タブの横に"チャネル基本設定"というタブがあるので同様に画面最下部までスクロールすると、下から3番目あたりに"あなたのユーザーID"という項目があります。こちらもコピーだけして安全な場所に保管しておいてください。

チャネルの友だち登録

この時点でLINEアカウント(チャネル)は既に作成されていますが、Python側からメッセージを送付するには既存のLINEアプリ側からLINEアカウント(チャネル)を友だち登録する必要があります。再度"Messaging API設定"タブ側に戻るとQRコードがあるのでこれをスマホで読み取って友だち登録しておきます。

これでLINE Messaging API側の準備が完了しました。続いてPython側で実装していきます。

2. Pythonで実装

実装にあたり、公式ライブラリが公開されているので、以下の通りインストールして効率よく実装していきましょう。

pip install line-bot-sdk

※なおPython以外の言語でも同様にライブラリが用意されているようです。

インストールが完了したら、以下の通りコードを書いていきます。

.envファイル

アクセストークン発行時に控えておいた、"チャネルアクセストークン"と"あなたのユーザーID"を環境変数として設定しPythonファイルから呼び出せるようにしておきます。

line_api_sample.pyファイル

特別難しいことはしていませんが、linebotモジュールからLineBotApiをインポート、linebot.modelsからTextSendMessageをインポートします。それぞれ環境変数から値を呼び出して、メッセージをプッシュしてあげることでスマホの既存のLINEアプリ側にメッセージが送信されます。

まとめ

これでPython側からメッセージを送付する仕組みを作ることができました。"Messaging API"タブを確認すると他にも"応答メッセージ"や"あいさつメッセージ"があるのでこれらを設定することでより双方向性の高いコミュニケーションが取れるようになると思います。また、このコードをHeroku等にアップロードすると、Cron設定も簡単にできるため定期的にメッセージ送付が可能になります。いずれも今後まとめようと思います。


記事をシェアする


関連する記事

よろしければこちらの記事も参考にしてみてください。

Loading...




記事一覧へ