Perlから簡単にLINEに通知を送る

# Perlから簡単にLINEに通知を送る：Net::LineNotifyモジュールの使い方

皆さん、Perlでスクリプトを書く際に、実行結果やエラーログを手軽に通知したいと思ったことはありませんか？今回は、Perlから直接LINEに通知を送信できる便利なモジュール、`Net::LineNotify`をご紹介します。

## Net::LineNotifyとは

`Net::LineNotify`は、LINEが提供する[LINE Notify API](https://notify-bot.line.me/ja/)を利用して、簡単にLINEにメッセージを送信するためのPerlモジュールです。これを使えば、Perlスクリプトから直接LINEに通知を送ることができます。

## インストール方法

`Net::LineNotify`はCPANに公開されているため、以下のコマンドで簡単にインストールできます。

```bash
cpan install Net::LineNotify
```

または、リポジトリをクローンして手動でインストールすることも可能です。

```bash
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`

インストール方法：

```bash
cpan install LWP::UserAgent HTTP::Request::Common
```

## LINE Notifyのアクセストークンを取得する

`Net::LineNotify`を使用する前に、LINE Notifyのアクセストークンが必要です。以下の手順で取得してください。

1. [LINE Notify](https://notify-bot.line.me/ja/)のウェブサイトにアクセスし、LINEアカウントでログインします。
2. 画面右上の「マイページ」をクリックします。
3. 「トークンを発行する」を選択し、通知を送信したいトークームまたはグループを選びます。
4. トークンに名前を付け、「発行する」をクリックします。
5. 表示されたアクセストークンをコピーします（この画面以外で確認できないのでご注意ください）。

## 使い方

### 基本的な送信方法

```perl
use Net::LineNotify;

# アクセストークンを設定
my $line = Net::LineNotify->new(access_token => 'YOUR_ACCESS_TOKEN');

# メッセージを送信
$line->send_message('PerlからのLINE通知です！');
```

### オプション付きのメッセージ送信

画像やスタンプを送信する場合は、追加のパラメータを指定できます。

```perl
# 画像を送信
$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`

```perl
my $line = Net::LineNotify->new(access_token => 'YOUR_ACCESS_TOKEN');
```

- **access_token**: 先ほど取得したLINE Notifyのアクセストークン（必須）。

### `send_message`

```perl
$line->send_message('送信したいメッセージ');
```

- **message**: 送信するメッセージ本文（必須、最大1000文字）。
- **imageThumbnail**: サムネイル画像のURL（オプション）。
- **imageFullsize**: フルサイズ画像のURL（オプション）。
- **stickerPackageId**: スタンプのパッケージID（オプション）。
- **stickerId**: スタンプのID（オプション）。

## 注意点

- メッセージは必ず指定してください。空のメッセージは送信できません。
- 画像を送信する際は、`imageThumbnail`と`imageFullsize`の両方を指定する必要があります。
- スタンプを送信する際は、`stickerPackageId`と`stickerId`を正しく指定してください。

## 実用例

### スクリプトの実行結果を通知

```perl
use Net::LineNotify;

my $line = Net::LineNotify->new(access_token => 'YOUR_ACCESS_TOKEN');

# コマンドの実行
my $output = `ls -l`;

# 結果をLINEに送信
$line->send_message("コマンドの実行結果:\n$output");
```

### エラーログの通知

```perl
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ライセンス](https://dev.perl.org/licenses/artistic.html)をご覧ください。

## まとめ

`Net::LineNotify`を使うことで、Perlスクリプトから簡単にLINEに通知を送ることができます。日々の業務自動化や監視スクリプトに組み込んで、効率的な開発を進めてみてはいかがでしょうか。

**参考リンク**

- [Net::LineNotify - GitHubリポジトリ](https://github.com/kawamurashingo/Net-LineNotify)
- [LINE Notify APIドキュメント](https://notify-bot.line.me/doc/ja/)