見出し画像

【コピペOK・初心者向け】GASで画像APIを叩いてDiscordに送信する(手抜き)

どうも、音猫。です!
今回はnekos.bestというAPIを用いてDiscordにカワイイ画像を送信してくれる機能を作りたいと思います!

nekos.bestとは?

pixivなどに投稿されたカワイイ画像を呼び出してくれるAPIだと思っていただければいいと思います。
アクセス制限やKeyの取得の必要などがなく、初心者でも使いやすいと思ってます。

注意!

今回は適当にコード書いてます
ちゃんと動作することは確認済みですが、もっとこうしたほうがよいなどという意見がありましたらコメントにお願いします🙏
2024/04/18時点の私が過去のアドバイスを受け修正しました、えらい!

必要なもの(こと)

  1. Discordアカウント

  2. Googleアカウント

  3. 前回の記事を読む(前回の知識がある前提で進めていくため)

手順

さて作り方です。今回はテキトーに書いたので実は前回よりも簡単ですw
今回は最初からGASを開いてください。
そして「新しいプロジェクト」を開いて下のコードを貼り付けましょう!

const discordWebHookURL =  "DiscordのwebhookURL";
function sendNeko() { 
  const arr = ["neko", "waifu", "kitsune"];    
  const random = Math.floor(Math.random() * arr.length);
  const result = arr[random];
  const url = `https://nekos.best/api/v2/${result}`;
  const response = UrlFetchApp.fetch(url).getContentText()
  const json = JSON.parse(response);

  const source = json["results"][0].source_url
  const name = json["results"][0].artist_name
  const href = json["results"][0].artist_href
  const imageUrl = json["results"][0].url

  const message = {
    "tts": false,
    "embeds": [
      {
        "title": "Nekos.best",
        "url": source,
        "color": 16775885,
        "image": {
          "url": imageUrl
        },
        "author": {
          "name":name,
          "url": href
        }
      }
    ]
  }

  const param = {
    "method": "POST",
    "headers": { 'Content-type': "application/json" },
    "payload": JSON.stringify(message)
  }
  UrlFetchApp.fetch(discordWebHookURL, param);
}

そしてこの後にDiscordのブラウザ版でwebhookを作成しましょう。
(2024/04/19時点では、アプリ版ではwebhookが作成できません)
次の画像にしたがって作ってください

画像を送信したいチャンネルで「チャンネルの編集」を選択


「連携サービス」→「ウェブフックを作成」


webhookを作り、名前とアイコンは適当に設定して「ウェブフックURLをコピー」

んでコピーしたURLを
さっきのコードの
const discordWebHookURL = "DiscordのwebhookURL";
の""の中に"https://~"みたいな感じで貼り付けて完成です!

後は前回同様に実行して承認したら完成です〜

定期的に送信させる

機能自体は完成しました
しかし、前回同様いちいち「実行ボタン」を押さないと送信してくれません
そこで、GASには「トリガー」という素晴らしい機能があるのはご存知でしょうか?今回はこれを使って一定時間ごとに送信するようにしてみましょう!
簡単です

左のメニューバーから時計のマーク(トリガー)を選択
「トリガーを追加」を選択
 囲ったところを実行させたい間隔で指定して「保存」

これで完成です!お疲れさまでした〜


この記事が気に入ったらサポートをしてみませんか?