業務で作成した月次レポートや契約書を、毎回メールや手動でLINEに送っていませんか?PythonとLINE Notifyを連携すれば、PDFファイルの自動送信が可能になり、ファイル共有を効率化できます。
この記事では、Pythonを使ってLINEにPDFファイルを送信する方法を解説します。
前提:LINE Notifyトークンの取得
- LINE Notify にログイン
- 「マイページ」から「トークンを発行する」をクリック
- トーク名と通知先(個人 or グループ)を選択
- 発行されたアクセストークンを控える(必ず保存)
PythonスクリプトでPDF送信
import requests
# 取得したLINE Notifyのアクセストークン
TOKEN = "YOUR_LINE_NOTIFY_TOKEN"
# 通知メッセージ
message = "月次レポートを送信します。"
# 送信するPDFファイルのパス
file_path = "monthly_report.pdf"
headers = {
"Authorization": f"Bearer {TOKEN}"
}
data = {
"message": message
}
files = {
"imageFile": ("report.pdf", open(file_path, "rb"), "application/pdf")
}
response = requests.post("https://notify-api.line.me/api/notify", headers=headers, data=data, files=files)
if response.status_code == 200:
print("送信成功")
else:
print("エラー発生:", response.status_code, response.text)
注意:LINE Notifyは画像(PNG、JPEG、GIF)には対応していますが、PDFファイルは「画像」として送信されるため、一部環境では表示できない可能性があります。PDFの中身を画像化する方法も後述します。
PDFを画像に変換して送信する方法(代替案)
from pdf2image import convert_from_path
from PIL import Image
# PDF → PNG変換(1ページ目)
images = convert_from_path("monthly_report.pdf")
images[0].save("page1.png", "PNG")
# 変換後の画像を送信
files = {
"imageFile": open("page1.png", "rb")
}
画像に変換することで、LINEトーク上でそのままプレビュー表示されるようになります。
定期実行への応用
- PythonでPDFを生成した直後に送信
- cronやWindowsタスクスケジューラで日次・月次自動送信
- 送信ログやエラーをファイル出力
まとめ
PythonとLINE Notifyを使えば、PDFファイルやその内容をLINEに自動で送信できます。帳票や報告書の共有をLINEで完結できるようになり、確認漏れの防止やリアルタイムな連携が可能です。
LINE Notifyは導入もシンプルで、通知系の自動化に非常に便利なツールです。PDF送信以外にも、スクレイピング結果やバッチ実行ログの通知など、幅広く活用できます。