はじめに
こんにちは、なりかくんです。
今回は、Node.jsでDiscordに毎分ランダムでGIF画像を送るプログラムを作りたいと思います。
GIF画像を取得する
今回は、GIF画像を取得するのにTenor APIのランダムGIFを使います。
このAPIでは、API Keyと検索文字を指定するだけでランダムにGIF画像を持ってきてくれるという優れたAPIです。
ドキュメントは以下のページに記載されていますので、ぜひ参考にしてみて下さい。
今回作成した取得するコードは以下のコードになります。検索結果が見つかればGIFのリンクを返して、見つからなければnullを返すというコードです。
function getGif(query) {
return new Promise((resolve, reject) => {
request({
url: `https://tenor.googleapis.com/v2/search?q=${query}&key=<Your API Key>&random=true`,
json: true
}, function (error, response, body) {
if (error) {
reject(error);
} else {
if (body.results.length != 0) {
resolve(body.results[0].media_formats.gif.url);
} else {
resolve(null);
}
}
});
});
}
コード全体
では、今回作成したコードはこちらになります。
tenor.js
const request = require("request");
function getGif(query) {
return new Promise((resolve, reject) => {
request({
url: `https://tenor.googleapis.com/v2/search?q=${query}&key=<Your API Key>&random=true`,
json: true
}, function (error, response, body) {
if (error) {
reject(error);
} else {
if (body.results.length != 0) {
resolve(body.results[0].media_formats.gif.url);
} else {
resolve(null);
}
}
});
});
}
async function main () {
let result = await getGif("fun");
if (!result) return;
request({
url: "WebHook URL",
method: "POST",
json: {
"embeds": [{
"image": {
"url": result
}
}]
}
});
}
main();
setInterval(main, 60000);
これを実行すると、60秒ごと(1分毎)にTenorからランダムに取得して送信するというプログラムが完成です。実際に動かしてみると以下のようになります。
これを活用して何か作ってみるといいかもしれませんね。
以上です、最後までお読みいただきありがとうございました。