【Discord API】Java17でDiscord APIを使うには?
投稿 2022年12月25日
最終更新 2023年2月26日
専門用語多め
JavaでDiscord API
Discord APIをJavaで実行します。
バージョンはJava17です。
curlなどでやっている記事はいくつかありますが、
Javaでやっている記事が見当たらなかったので、やってみました。
前提
Discord APIの実行環境は、整っている前提で話を進めます。
※curlなどでDiscord APIをたたける前提
もしまだ環境が整っていない方は、整えてからご覧ください。
コード
Java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpRequest.BodyPublishers;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
public class DiscordAPI {
public static void main(String[] args) {
// アクセストークン
String token = "xxxxxxxxxxxxxxxxxxxxxxxxx";
// チャンネルID(窓)
String channelId = "0000000000000000000";
// メンションID(宛先)
String mentionId = "1111111111111111111";
// 送信したいメッセージ
String msg = "はじめまして\\nよろしく!";
// リクエスト用に成形
String apiUrl = "https://discordapp.com/api/channels/" + channelId + "/messages";
String contents = "{\"content\":\"<@" + mentionId + ">\\n" + msg + "\"}";
// リクエスト作成
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(apiUrl))
.header("content-type", "application/json")
.header("Authorization", "Bot " + token)
.method("POST", BodyPublishers.ofString(contents))
.build();
// リクエスト送信しレスポンス取得
String response = HttpClient.newHttpClient()
.send(request, BodyHandlers.ofString())
.body();
System.out.println(response);
}
}
curl
curl --request POST \
--url https://discordapp.com/api/channels/0000000000000000000/messages
--header 'content-type: application/json' \
--header 'Authorization: Bot xxxxxxxxxxxxxxxxxxxxxxxxx' \
--data '{"content":"<@1111111111111111111>\nはじめまして\nよろしく!"}'
リンク
GitHubにもメソッド版を上げています。
そちらも参考にどうぞ。
まとめ
PHPやcurlは検索すれば出てくるとは思いますが、Javaが思ったより出てこなかったので書いてみました。
どうすれば出来るかを考えるのは楽しいです!
仕組みさえわかれば、どうにかなるもんですね。
以上、ここまで見ていただきありがとうございます。
皆さまの快適な開発ライフに、ほんの少しでもお役に立てれば幸いです。