From 7874c4ed20ec4bc3e9913a40e8db21e9287c5732 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 24 Feb 2019 12:40:17 +0900 Subject: [PATCH] Improve doc --- .../api/endpoints/auth/session/generate.ts | 6 +++- src/server/api/endpoints/auth/session/show.ts | 6 +++- .../api/endpoints/auth/session/userkey.ts | 12 ++++++-- src/server/api/openapi/description.ts | 29 +++++++------------ 4 files changed, 30 insertions(+), 23 deletions(-) diff --git a/src/server/api/endpoints/auth/session/generate.ts b/src/server/api/endpoints/auth/session/generate.ts index b6bfb5590..9473aa943 100644 --- a/src/server/api/endpoints/auth/session/generate.ts +++ b/src/server/api/endpoints/auth/session/generate.ts @@ -13,7 +13,11 @@ export const meta = { params: { appSecret: { - validator: $.str + validator: $.str, + desc: { + 'ja-JP': 'アプリケーションのシークレットキー', + 'en-US': 'The secret key of your application.' + } } }, diff --git a/src/server/api/endpoints/auth/session/show.ts b/src/server/api/endpoints/auth/session/show.ts index 4287950f3..992e0a499 100644 --- a/src/server/api/endpoints/auth/session/show.ts +++ b/src/server/api/endpoints/auth/session/show.ts @@ -10,7 +10,11 @@ export const meta = { params: { token: { - validator: $.str + validator: $.str, + desc: { + 'ja-JP': 'セッションのトークン', + 'en-US': 'The token of a session.' + } } }, diff --git a/src/server/api/endpoints/auth/session/userkey.ts b/src/server/api/endpoints/auth/session/userkey.ts index d4c3d7777..49dde23ed 100644 --- a/src/server/api/endpoints/auth/session/userkey.ts +++ b/src/server/api/endpoints/auth/session/userkey.ts @@ -13,11 +13,19 @@ export const meta = { params: { appSecret: { - validator: $.str + validator: $.str, + desc: { + 'ja-JP': 'アプリケーションのシークレットキー', + 'en-US': 'The secret key of your application.' + } }, token: { - validator: $.str + validator: $.str, + desc: { + 'ja-JP': 'セッションのトークン', + 'en-US': 'The token of a session.' + } } }, diff --git a/src/server/api/openapi/description.ts b/src/server/api/openapi/description.ts index d15c74590..83250c341 100644 --- a/src/server/api/openapi/description.ts +++ b/src/server/api/openapi/description.ts @@ -1,3 +1,5 @@ +import config from '../../../config'; + export const description = ` ## Usage **APIはすべてPOSTでリクエスト/レスポンスともにJSON形式です。** @@ -9,20 +11,12 @@ export const description = ` > アカウントを不正利用される可能性があるため、このトークンは第三者に教えないでください(アプリなどにも入力しないでください)。 ### アプリケーションとしてアクセストークンを取得する -直接ユーザーのアクセストークンをアプリケーションが扱うのは危険なので、 +直接ユーザーのアクセストークンをアプリケーションが扱うのはセキュリティ上のリスクがあるので、 アプリケーションからAPIを利用する際には、アプリケーションとアプリケーションを利用するユーザーが結び付けられた専用のアクセストークンをMisskeyに発行してもらいます。 #### 1.アプリケーションを登録する まず、あなたのアプリケーションやWebサービス(以後、あなたのアプリと呼びます)をMisskeyに登録します。 [デベロッパーセンター](/dev)にアクセスし、「アプリ > アプリ作成」からアプリを作成してください。 -フォームの記入欄の説明は以下の通りです: - -| 名前 | 説明 | -|---|---| -| アプリケーション名 | あなたのアプリの名称。 | -| アプリの概要 | あなたのアプリの簡単な説明や紹介。 | -| コールバックURL | ユーザーが後述する認証フォームで認証を終えた際にリダイレクトするURLを設定できます。あなたのアプリがWebサービスである場合に有用です。 | -| 権限 | あなたのアプリが要求する権限。ここで要求した機能だけがAPIからアクセスできます。 | 登録が済むとあなたのアプリのシークレットキーが入手できます。このシークレットキーは後で使用します。 @@ -31,27 +25,24 @@ export const description = ` #### 2.ユーザーに認証させる アプリを使ってもらうには、ユーザーにアカウントへのアクセスの許可をもらう必要があります。 -認証セッションを開始するには、%API_URL%/auth/session/generate へパラメータに appSecret としてシークレットキーを含めたリクエストを送信します。 +認証セッションを開始するには、[${config.api_url}/auth/session/generate](#operation/auth/session/generate) へパラメータに appSecret としてシークレットキーを含めたリクエストを送信します。 リクエスト形式はJSONで、メソッドはPOSTです。 レスポンスとして認証セッションのトークンや認証フォームのURLが取得できるので、認証フォームのURLをブラウザで表示し、ユーザーにフォームを提示してください。 あなたのアプリがコールバックURLを設定している場合、 -ユーザーがあなたのアプリの連携を許可すると設定しているコールバックURLに token という名前でセッションのトークンが含まれたクエリを付けてリダイレクトします。 +ユーザーがあなたのアプリの連携を許可すると設定しているコールバックURLに\`token\`という名前でセッションのトークンが含まれたクエリを付けてリダイレクトします。 あなたのアプリがコールバックURLを設定していない場合、ユーザーがあなたのアプリの連携を許可したことを(何らかの方法で(たとえばボタンを押させるなど))確認出来るようにしてください。 #### 3.ユーザートークンを取得する -ユーザーが連携を許可したら、%API_URL%/auth/session/userkey へ次のパラメータを含むリクエストを送信します: - -| 名前 | 型 | 説明 | -|---|---|---| -| appSecret | string | アプリのシークレットキー | -| token | string | セッションのトークン | +ユーザーが連携を許可したら、[${config.api_url}/auth/session/userkey](#operation/auth/session/userkey) へリクエストを送信します。 上手くいけば、認証したユーザーのユーザートークンがレスポンスとして取得できます。おめでとうございます! -ユーザートークンが取得できたら、「ユーザーのユーザートークン+あなたのアプリのシークレットキーをsha256したもの」をアクセストークンとして、APIにリクエストできます。 +ユーザートークンが取得できたら、*「ユーザーのユーザートークン+あなたのアプリのシークレットキーをsha256したもの」*をアクセストークンとして、APIにリクエストできます。 アクセストークンの生成方法を擬似コードで表すと次のようになります: -
const i = sha256(userToken + secretKey);
+\`\`\` js +const i = sha256(userToken + secretKey); +\`\`\` `;