スキルアップを始める!

【GAS】LINE Notifyで画像を添付して送信する方法

GAS(GoogleAppsScript)
GAS(GoogleAppsScript)
この記事は約6分で読めます。

※記事中に広告情報を含みます。

\ワードプレスのスキルアップはこちら!/ WordPress入門読本

Google Apps Scriptを使用して、LINE Notifyに画像を添付して送信してみます。

LINE Notifyに画像を添付して送信する

まずは、LINE Notifyを登録して、トークンを発行します。

LINE Notify
LINE NotifyはGitHub,IFTTT,MackerelなどのWebサービスからの通知を、LINEで受信することが出来る便利なサービスです。

このあたりは過去に何度も書いていますので割愛します。過去の記事を参考ください。

トークンが発行できます。

UrlFetchApp.fetch

GASから外部のAPIサービスを操作するために使える方法が「UrlFetchApp.fetch」です。

UrlFetchApp.fetch(url).getContentText();
UrlFetchApp.fetch(URL[, パラメータ])

こちらにリクエストURLとパラメータを付与します。

 method:メソッド(GETかPOST)
 payload:ペイロード(POSTの際の内容)
 header:ヘッダー(TOKEN)

これらをオブジェクト形式で指定します。URLにはnotify-apiのURLを指定して、後はパラメータを付けていきます。

UrlFetchApp.fetch("https://notify-api.line.me/api/notify", );

パラメータ部分は「{ }」波カッコで括ります。まとめると下記のようになります。

UrlFetchApp.fetch("https://notify-api.line.me/api/notify",               
                      {
      "method"  : "post",
      "payload" : "message=" + message,
      "headers" : {"Authorization" : "Bearer "+ token}
                      }
                     );

こちらをスクリプトに組み込みます。

LINE Notifyに画像を添付して送信するGASを作成する

LINE Notifyに画像を添付して送信するためのスクリプトをGoogleAppsScriptで準備します。

payload を変数に分けて、imageFullsize、imageThumbnailのパラメータを追加しています。

function sendImageToLineNotify() {
  var token = "ここにトークンを入力";
  var imageFileId = "Google Drive上の画像ファイルID";
  var message = "任意のメッセージ";

  // 画像ファイルのURLを取得
  var imageFileUrl = DriveApp.getFileById(imageFileId).getDownloadUrl();

  // LINE Notifyに送信するリクエストパラメータを設定
  var payload = {
    "message": message,
    "imageFullsize": imageFileUrl,
    "imageThumbnail": imageFileUrl
  };

  // LINE Notifyにリクエストを送信
  var options = {
    "method": "post",
    "headers": {
      "Authorization": "Bearer " + token
    },
    "payload": payload
  };
  var response = UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);

  // レスポンスのステータスコードを確認
  if (response.getResponseCode() == 200) {
    Logger.log("画像を送信しました。");
  } else {
    Logger.log("画像の送信に失敗しました。");
  }
}

Googleドライブに画像をアップロードしておきます。

そして、画像のファイルIDをコピーしておきます。

あとは、それぞれのtokenとFileIDを添付しています。

function sendImageToLineNotify() {
  var token = "ここにトークンを入力";
  var imageFileId = "Google Drive上の画像ファイルID";
  var message = "任意のメッセージ";

  // 画像ファイルのURLを取得
  var imageFileUrl = DriveApp.getFileById(imageFileId).getDownloadUrl();

  // LINE Notifyに送信するリクエストパラメータを設定
  var payload = {
    "message": message,
    "imageFullsize": imageFileUrl,
    "imageThumbnail": imageFileUrl
  };

  // LINE Notifyにリクエストを送信
  var options = {
    "method": "post",
    "headers": {
      "Authorization": "Bearer " + token
    },
    "payload": payload
  };
  var response = UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);

  // レスポンスのステータスコードを確認
  if (response.getResponseCode() == 200) {
    Logger.log("画像を送信しました。");
  } else {
    Logger.log("画像の送信に失敗しました。");
  }
}

※画像をGoogleドライブ以外の場所で参照したい場合は、imageFileUrlの変数のURLを調整します。

あとは、スクリプトを実行して権限を与えます。

スクリプトを実行すると、画像が添付されて送信されました。

※画像が表示されない場合は、画像が公開されているURLになっているか?など確認してみましょう。

URLを変更して届くかどうか試してみます。

var imageFileUrl = "https://js.eguweb.tech/wp-content/uploads/paper.png";

メッセージと共に画像が届きました!

まとめ

以上の手順に従ってコードを作成して、Google Apps ScriptでLINE Notifyに画像を添付して送信することができます。

※画像を正しく送信するためには、ファイルのパスやファイルの形式に注意してください。

URLをコピーしました!