jointrashposs/content/ko-KR/docs/api/app.md
kakkokari-gtyih 8e52c51c49 wip
2023-07-08 17:36:02 +09:00

2.3 KiB

description
MiAuth의 도입 이전의 액세스 토큰 취득 방법을 설명합니다.

앱 생성 방식에서의 액세스 토큰 취득 방법

MiAuth의 도입(12.27.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 요청

액세스 허가를 확인하면 auth/session/userkey 엔드포인트appSecrettoken을 POST합니다.

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

여기서 취득할 수있는 문자열을 accessToken이라 부릅니다. accessToken은 한 번만 취득할 수 있습니다.

4. i 생성

Node.js에서 i는 다음과 같이 생성하며, 설정 화면에서 취득하는 것과는 달리 64자리 16진수로 발급됩니다.

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

5. 실제 작동 확인

fetch("https://misskey.io/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',
});