Bantu kami menerjemahkan

Dokumen ini diterjemahkan oleh komunitas. Kamu dapat ikut berkontribusi menyempurnakan terjemahan ini melalui Crowdin. Kami sangat mengapresiasi atas kerjasama yang telah kamu berikan dengan ikut berkontribusi dalam proyek ini 🙏.

アプリ作成方式でのアクセストークン取得方法(旧来型)

MiAuth導入(12.27.0)やOAuth導入(2023.9.0)より前の、旧来のアクセストークン取得方法について説明します。
12.27.0未満のバージョンのサーバーではこの旧来の方式を使用する必要があります。

1. アプリケーションの作成

app/createエンドポイントに情報を送信し、appSecretを取得します。

{
    // アプリの名前
    "name": "test",
    // アプリの説明
    "description": "my test application",
    // アプリのパーミッション
    "permission": ["write:notes"]
}

この時、callbackUrlでお好きなURLを含めると、次のアクセス許可操作が終了したときにtokenをクエリ文字列に含めながらそこにコールバックするようになります。

2. ユーザーに認証させる

auth/session/generateエンドポイントappSecretをPOSTします。

{
    "appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf"
}

token(ここでは仮に798b9f6e-248d-43a7-a919-fabc664027f1)とurlを返してくるので、まずはこのurlにウェブブラウザでアクセスし「アクセスを許可」を選択。

3. accessTokenを問い合わせる

2が終わったことが確認できたら、auth/session/userkeyエンドポイントappSecretと先ほどのtokenをPOSTします。

{
  "appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf",
  "token": "798b9f6e-248d-43a7-a919-fabc664027f1"
}

ここで取得できる文字列はaccessTokenと呼ばれます。accessTokenは一度限りしか取得できません。

4. iを生成

iは、Node.jsであれば以下のようなコードで生成でき、設定画面で取得するものとは違って64桁の16進数となります。

const crypto = require("crypto")
const i = crypto.createHash("sha256")
    .update(accessToken + appSecret, "utf8")
    .digest("hex")
console.log(i)

5. 実際にテストする

fetch("https://misskey.example/api/notes/create", {
    method: 'POST',
    body: JSON.stringify({
        i: "/* ここにiを入力 */",
        text: "Hello Misskey API World with My Application!"
    }),
    headers: {
        'Content-Type': 'application/json',
    },
    credentials: 'omit',
});