Perlから簡単にLINEに通知を送る:Net::LineNotifyモジュールの使い方
皆さん、Perlでスクリプトを書く際に、実行結果やエラーログを手軽に通知したいと思ったことはありませんか?今回は、Perlから直接LINEに通知を送信できる便利なモジュール、Net::LineNotify
をご紹介します。
Net::LineNotifyとは
Net::LineNotify
は、LINEが提供するLINE Notify APIを利用して、簡単にLINEにメッセージを送信するためのPerlモジュールです。これを使えば、Perlスクリプトから直接LINEに通知を送ることができます。
インストール方法
Net::LineNotify
はCPANに公開されているため、以下のコマンドで簡単にインストールできます。
cpan install Net::LineNotify
または、リポジトリをクローンして手動でインストールすることも可能です。
git clone https://github.com/kawamurashingo/Net-LineNotify.git
cd Net-LineNotify
perl Makefile.PL
make
make test
make install
依存モジュール
このモジュールは以下のPerlモジュールに依存しています。事前にインストールしてください。
LWP::UserAgent
HTTP::Request::Common
インストール方法:
cpan install LWP::UserAgent HTTP::Request::Common
LINE Notifyのアクセストークンを取得する
Net::LineNotify
を使用する前に、LINE Notifyのアクセストークンが必要です。以下の手順で取得してください。
- LINE Notifyのウェブサイトにアクセスし、LINEアカウントでログインします。
- 画面右上の「マイページ」をクリックします。
- 「トークンを発行する」を選択し、通知を送信したいトークームまたはグループを選びます。
- トークンに名前を付け、「発行する」をクリックします。
- 表示されたアクセストークンをコピーします(この画面以外で確認できないのでご注意ください)。
使い方
基本的な送信方法
use Net::LineNotify;
# アクセストークンを設定
my $line = Net::LineNotify->new(access_token => 'YOUR_ACCESS_TOKEN');
# メッセージを送信
$line->send_message('PerlからのLINE通知です!');
オプション付きのメッセージ送信
画像やスタンプを送信する場合は、追加のパラメータを指定できます。
# 画像を送信
$line->send_message(
message => '画像付きの通知です',
imageThumbnail => 'https://example.com/thumbnail.jpg',
imageFullsize => 'https://example.com/fullsize.jpg'
);
# スタンプを送信
$line->send_message(
message => 'スタンプ付きの通知です',
stickerPackageId => 1,
stickerId => 1
);
メソッド詳細
new
my $line = Net::LineNotify->new(access_token => 'YOUR_ACCESS_TOKEN');
- access_token: 先ほど取得したLINE Notifyのアクセストークン(必須)。
send_message
$line->send_message('送信したいメッセージ');
- message: 送信するメッセージ本文(必須、最大1000文字)。
- imageThumbnail: サムネイル画像のURL(オプション)。
- imageFullsize: フルサイズ画像のURL(オプション)。
- stickerPackageId: スタンプのパッケージID(オプション)。
- stickerId: スタンプのID(オプション)。
注意点
- メッセージは必ず指定してください。空のメッセージは送信できません。
- 画像を送信する際は、
imageThumbnail
とimageFullsize
の両方を指定する必要があります。 - スタンプを送信する際は、
stickerPackageId
とstickerId
を正しく指定してください。
実用例
スクリプトの実行結果を通知
use Net::LineNotify;
my $line = Net::LineNotify->new(access_token => 'YOUR_ACCESS_TOKEN');
# コマンドの実行
my $output = `ls -l`;
# 結果をLINEに送信
$line->send_message("コマンドの実行結果:\n$output");
エラーログの通知
use Net::LineNotify;
my $line = Net::LineNotify->new(access_token => 'YOUR_ACCESS_TOKEN');
# エラーログの確認
if (-e 'error.log') {
open my $fh, '<', 'error.log' or die $!;
my @errors = <$fh>;
close $fh;
$line->send_message("エラーログが更新されました:\n@errors");
}
ライセンス
このモジュールはフリーソフトウェアです。Perlと同じライセンスの下で再配布および変更が可能です。詳細については、PerlのArtisticライセンスをご覧ください。
まとめ
Net::LineNotify
を使うことで、Perlスクリプトから簡単にLINEに通知を送ることができます。日々の業務自動化や監視スクリプトに組み込んで、効率的な開発を進めてみてはいかがでしょうか。
参考リンク