diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2019-02-24 04:08:08 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2019-02-24 04:08:08 +0900 |
| commit | 344696912179edcb13623df5f7c9e8d8cd438031 (patch) | |
| tree | b9f6016ca0864c589527c78362149293d9a300cc /src/server/api/openapi/description.ts | |
| parent | Fix bug (diff) | |
| download | sharkey-344696912179edcb13623df5f7c9e8d8cd438031.tar.gz sharkey-344696912179edcb13623df5f7c9e8d8cd438031.tar.bz2 sharkey-344696912179edcb13623df5f7c9e8d8cd438031.zip | |
Refator: separate files
Diffstat (limited to 'src/server/api/openapi/description.ts')
| -rw-r--r-- | src/server/api/openapi/description.ts | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/server/api/openapi/description.ts b/src/server/api/openapi/description.ts new file mode 100644 index 0000000000..e32edf7b22 --- /dev/null +++ b/src/server/api/openapi/description.ts @@ -0,0 +1,58 @@ +export const description = ` +## Usage +APIはすべてPOSTでリクエスト/レスポンスともにJSON形式です。 +一部のAPIは認証情報(アクセストークン)が必要です。リクエストの際に\`i\`というパラメータでアクセストークンを添付してください。 + +### アクセストークンを取得する +#### 自分のアカウントのアクセストークンを取得する +「設定 > API」で、自分のアクセストークンを取得できます。 + +> アカウントを不正利用される可能性があるため、このトークンは第三者に教えないでください(アプリなどにも入力しないでください)。 + +### アプリケーションとしてアクセストークンを取得する +直接ユーザーのアクセストークンをアプリケーションが扱うのは危険なので、 +アプリケーションからAPIを利用する際には、アプリケーションとアプリケーションを利用するユーザーが結び付けられた専用のアクセストークンをMisskeyに発行してもらいます。 + +#### 1.アプリケーションを登録する +まず、あなたのアプリケーションやWebサービス(以後、あなたのアプリと呼びます)をMisskeyに登録します。 +[デベロッパーセンター](/dev)にアクセスし、「アプリ > アプリ作成」からアプリを作成してください。 +フォームの記入欄の説明は以下の通りです: + +| 名前 | 説明 | +|---|---| +| アプリケーション名 | あなたのアプリの名称。 | +| アプリの概要 | あなたのアプリの簡単な説明や紹介。 | +| コールバックURL | ユーザーが後述する認証フォームで認証を終えた際にリダイレクトするURLを設定できます。あなたのアプリがWebサービスである場合に有用です。 | +| 権限 | あなたのアプリが要求する権限。ここで要求した機能だけがAPIからアクセスできます。 | + +登録が済むとあなたのアプリのシークレットキーが入手できます。このシークレットキーは後で使用します。 + +> アプリに成りすまされる可能性があるため、極力このシークレットキーは公開しないようにしてください。</p> + +#### 2.ユーザーに認証させる +アプリを使ってもらうには、ユーザーにアカウントへのアクセスの許可をもらう必要があります。 + +認証セッションを開始するには、%API_URL%/auth/session/generate へパラメータに appSecret としてシークレットキーを含めたリクエストを送信します。 +リクエスト形式はJSONで、メソッドはPOSTです。 +レスポンスとして認証セッションのトークンや認証フォームのURLが取得できるので、認証フォームのURLをブラウザで表示し、ユーザーにフォームを提示してください。 + +あなたのアプリがコールバックURLを設定している場合、 +ユーザーがあなたのアプリの連携を許可すると設定しているコールバックURLに token という名前でセッションのトークンが含まれたクエリを付けてリダイレクトします。 + +あなたのアプリがコールバックURLを設定していない場合、ユーザーがあなたのアプリの連携を許可したことを(何らかの方法で(たとえばボタンを押させるなど))確認出来るようにしてください。 + +#### 3.ユーザートークンを取得する +ユーザーが連携を許可したら、%API_URL%/auth/session/userkey へ次のパラメータを含むリクエストを送信します: + +| 名前 | 型 | 説明 | +|---|---|---| +| appSecret | string | アプリのシークレットキー | +| token | string | セッションのトークン | + +上手くいけば、認証したユーザーのユーザートークンがレスポンスとして取得できます。おめでとうございます! + +ユーザートークンが取得できたら、「ユーザーのユーザートークン+あなたのアプリのシークレットキーをsha256したもの」をアクセストークンとして、APIにリクエストできます。 + +アクセストークンの生成方法を擬似コードで表すと次のようになります: +<pre><code>const i = sha256(userToken + secretKey);</code></pre> +`; |