ヘッダー画像

【Discord API】Java17でDiscord APIを使うには?

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が思ったより出てこなかったので書いてみました。

どうすれば出来るかを考えるのは楽しいです!

仕組みさえわかれば、どうにかなるもんですね。

以上、ここまで見ていただきありがとうございます。

皆さまの快適な開発ライフに、ほんの少しでもお役に立てれば幸いです。

コメント

この記事のコメントはありません。