【python】(コピペでOK!)Lineでメッセージを送ってみる。

あちこちで解説されているかと思いますが、本記事では、pythonを用いてLineにメッセージを送信する方法をご紹介します!

初めて実装した際、地味に感動しました笑

実際、機械学習や自動で何かを処理している際に発生したエラーなどをいち早く知る手段としてはかなり有効だと思います。

目次

なにができるの?

まずはどんなことが出来るのか見てみましょう。

このように、メッセージはもちろん、スタンプや写真を送ることができます。

ただ自分のアカウントから直接メッセージ等を送信するのではなく、Line Notifyというアカウントと一対一、もしくはLine Notifyをグループに招待し、Line Notify経由で複数人に発信することができます。

グループに招待さえしておけば、「1分おきに定期的に同じメッセージやスタンプを送り続ける」なんていう精神崩壊チキンレースもできます。

はたまた、なんかの歌詞を少しずつ送信させるプログラムを組んで、文字版イントロドンもできますね。

準備

pythonでLineのやりとりを行う前に、個人的に準備しなければならないものがあります!

  1. Line Notify と友達になる
  2. アクセストークンの発行
  1. のLine Notifyと友達になるのは出来ると思いますので、アクセストークンの取得方法を説明していきます。

まずはこちらにアクセスしてください。

このような画面がが出てくると思うので、右上の「ログイン」ボタンからまずはログインしましょう。

ログインが完了すると、同様のホームページに戻ります。

すると、右上に自分のアカウント名が表示されます。

そのタブ内に「マイページ」とあるので、そこからマイページに移動しましょう。

するとページ下部に、「トークンを発行する」とい項目があるかと思いますので、睨みつけながらクリックしましょう。

するとこのように、トークン名・トークルームを指定してくれい、と出てきます。

任意のトークン名、トークルームを選択して、「発行する」ボタンを得意げな顔でクリックしましょう。

そうするとランダムな文字列が表示されますので、コピーして忘れないようにどこかに貼り付けておきましょう!

トークンをコピーし忘れてしまった場合

トークンをコピーし忘れた、もしくはどこかにペーストする前に別のなにかをコピーしてしまった場合は、作成したトークンを削除し、再度同様の流れでトークンを発行しなおせば万事オッケーです!

さて、これで準備は整いましたのでいよいよコードを書いていきましょう!

トークンを使ってあれこれ送信してみる

共通で使用する情報

初めに、メッセージ送信やスタンプの送信などを行う際に、共通で必要となるライブラリや情報を先に定義してておきます。

アクセストークンさえ書き換えていただければ、コピペで使用できます。

import requests

# LineNotifyのAPIのpost先
url = "https://notify-api.line.me/api/notify"
# 取得したトークン
access_token = '[ 先ほど取得したアクセストークン ]'
# postする際に一緒に送信するヘッダ情報
headers = {'Authorization': 'Bearer ' + access_token}

メッセージを送信する

メッセージを送信するコードです!

def send_text(txt):
    payload = {'message': txt}
    res = requests.post(url, headers=headers, params=payload)

上記の関数に任意のテキストを渡すと送信されます。

#実行
txt = 'こんにちは'
send_text(txt)

スタンプを送信する

def send_stamp(txt, stickerPackageId, stickerId):
    payload = {
        'message': txt,
        'stickerPackageId': stickerPackageId,
        'stickerId': stickerId
    }
    res = requests.post(url, headers=headers, params=payload,)

スタンプを送信する場合はテキストの他に、packageId, stickerIdの2つのスタンプを表すIDが必要です。

この2つのIDは、こちらのページに記載されています。

実行してみましょう。

# 実行
txt = 'スタンプ送信するわ'
package_id = 11538
sticker_id = 51626495
send_stamp(txt, package_id, sticker_id)
エラーはでないけど送信ができない!?

スタンプを送信する際に渡すテキストが空文字(”)ですと、スタンプは送信されず、しかもエラーも出ません。

同様に、2つのIDが間違っている場合も送信されませんので注意しましょう!

画像を送信する

def send_img(txt, img_path):
    payload = {'message': txt}
    files = {'imageFile': open(img_path, 'rb')}
    res = requests.post(url, headers=headers, params=payload, files=files)

画像を送信する場合は、テキスト・画像データのファイルパスが必要になります。

このpythonファイルと同じディレクトリに「img.png」という画像データがあるとする場合の実行コードは次のようになります。

# 実行
send_img('これはフリー素材です', 'img.png')

※画像もスタンプと同様、空文字ですとエラーは出ないですが送信もされません。

以上、pythonで文字やスタンプ・画像を送信する手順でした!

まとめ

今回は、LineのAPIを使用してメッセージなどを送信する方法をご紹介させていただきました!

意外と簡単に送信することができたかと思います。

冒頭でも触れましたが、これを使用すればスクレイピング中でのエラーログや終了通知などを気軽に確認することができます!

使い方は様々です。ひとつの選択肢として頭に入れておいても損は無いでしょう。

今回、APIなどについては触れませんでしたが、流れが悪くなってしまうので割愛しております、ご了承ください。

以上、ご覧いただきありがとうございました!

案件、ありますか?

「メインの仕事があるけれど、週1、2日だけできる仕事ないかな、、、」

「ある程度スキルが身に付いてはきたけど、そのスキルを活用できる場が欲しい」

なんて悩みが以前はありました。

自分で仕事を探しに行くのも大事ですが、蛇の道は蛇。その道の人に頼むことで、自分だけでは見つからないような案件に携わることができます。

IT PRO パートナーズでは、簡単に無料でアカウントを登録でき、さらにはエージェントさんに希望の働き方・案件の種類を提示することでお仕事を紹介してくれます!

登録自体も非常に簡単で、「エージェントさんとの面談を希望する」という欄にチェックをするだけで、エージェントさんから直接連絡をいただくことができます。

驚くほど簡単で正直拍子抜けしてしまいました笑

もしお仕事探しに困っておりましたら、一度登録し案件を眺めてみることをおすすめします!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

勤めていた設計会社を退社し、フリーランスとして活動しています
また、趣味で主にpyhonを用いて機械学習を行なっています!
現在競艇の予測モデルの開発中です。

コメント

コメントする

目次