Discordで画像を使ったGASスクリプト活用法!初心者向けガイド

DiscordにGASで作った画像を送りたいんだけど…どうやったらいいんだろう?僕、GASもDiscordも初心者で…
猫男
猫男
catman
catman
大丈夫さ、catmanが案内しよう。GASで画像を生成して、それをDiscordへ送る方法を一緒に学ぼうか。

 

GASで画像を生成する基本

GASを使うと簡単に画像を生成できます。まず、基本的な画像生成の方法を見てみましょう。


function createImage() {
  const canvas = new Graphics(200, 200);
  canvas.fillStyle = '#FF0000';
  canvas.fillRect(50, 50, 100, 100);
  const imageBlob = canvas.toBlob('image/png');
  return imageBlob;
}

Graphicsクラスを使ってキャンバスを作成し、そこに四角形を描きます。

そして、画像をBlob形式でエクスポートして返しています。

 

GASで生成した画像をDiscordに送る

生成した画像をDiscordのチャンネルに送信するには、Webフックを使用します。

DiscordのWebフックの設定方法

Discordのチャンネルから「Webhooks」を設定し、URLを取得します。このURLがGASとの接続ポイントになります。

GASでWebフックを使う

取得したWebフックのURLを使って、GASからリクエストを送信します。


function sendImageToDiscord() {
  const imageBlob = createImage();
  const url = 'YOUR_DISCORD_WEBHOOK_URL';
  
  const formData = {
    'content': 'ここに画像を送ります:',
    'file': imageBlob
  };

  const options = {
    'method': 'post',
    'payload': formData,
    'muteHttpExceptions': true
  };

  const response = UrlFetchApp.fetch(url, options);
  Logger.log(response);
}

ここでは、UrlFetchApp.fetch()メソッドを使って、DiscordのWebフックURLにPOSTリクエストを送ります。

リクエスト時に”file”として画像のBlobを送信しています。

 

GASとDiscordでの画像送信練習問題

GASを使用して「こんにちは、世界!」とテキストを書いた画像を生成し、それをDiscordにWebフックを介して送信する方法を考えてみましょう。

初めての挑戦でも安心してください、自分のペースでやってみてくださいね。

  

解答・解説

以下のスクリプトを参考にしてください。


function createTextImage() {
  const canvas = new Graphics(200, 200);
  canvas.fillStyle = '#FFFFFF';
  canvas.fillRect(0, 0, 200, 200);
  canvas.fillStyle = '#000000';
  canvas.font = '20px Arial';
  canvas.fillText('こんにちは、世界!', 50, 100);
  const imageBlob = canvas.toBlob('image/png');
  return imageBlob;
}

function sendTextImageToDiscord() {
  const imageBlob = createTextImage();
  const url = 'YOUR_DISCORD_WEBHOOK_URL';
  
  const formData = {
    'content': 'テキストを書いた画像を送ります:',
    'file': imageBlob
  };

  const options = {
    'method': 'post',
    'payload': formData,
    'muteHttpExceptions': true
  };

  const response = UrlFetchApp.fetch(url, options);
  Logger.log(response);
}

まず、テキストを含む画像をGraphicsクラスで生成しました。canvas.fillText()はテキストをキャンバスに描画するために使います。

その後、作成した画像をDiscordに送るには、UrlFetchApp.fetch()を使用しています。この方法でDiscordに画像を送信できます。

やった、これでGASで作った画像をDiscordに送れますね!本当に助かったよ、catman!
猫男
猫男
catman
catman
いい感じだ。これからもGASとDiscordを活用していろいろなことを試してみよう。

EARTHPG 自動化研究所

「その作業、仕組みにできます。」

Google Apps Script、Python、スプレッドシート自動化、WordPress開発、 API連携、AI活用まで対応。 小さな自動化から業務全体の設計まで、研究所が支援します。