2019-02-23 20:40:17 -07:00
|
|
|
|
import config from '../../../config';
|
|
|
|
|
|
2019-02-23 12:08:08 -07:00
|
|
|
|
export const description = `
|
|
|
|
|
## Usage
|
2019-02-23 12:11:54 -07:00
|
|
|
|
**APIはすべてPOSTでリクエスト/レスポンスともにJSON形式です。**
|
2019-02-23 12:08:08 -07:00
|
|
|
|
一部のAPIは認証情報(アクセストークン)が必要です。リクエストの際に\`i\`というパラメータでアクセストークンを添付してください。
|
|
|
|
|
|
2019-02-23 12:11:54 -07:00
|
|
|
|
### 自分のアカウントのアクセストークンを取得する
|
2019-02-23 12:08:08 -07:00
|
|
|
|
「設定 > API」で、自分のアクセストークンを取得できます。
|
|
|
|
|
|
|
|
|
|
> アカウントを不正利用される可能性があるため、このトークンは第三者に教えないでください(アプリなどにも入力しないでください)。
|
|
|
|
|
|
|
|
|
|
### アプリケーションとしてアクセストークンを取得する
|
2019-02-23 20:40:17 -07:00
|
|
|
|
直接ユーザーのアクセストークンをアプリケーションが扱うのはセキュリティ上のリスクがあるので、
|
2019-02-23 12:08:08 -07:00
|
|
|
|
アプリケーションからAPIを利用する際には、アプリケーションとアプリケーションを利用するユーザーが結び付けられた専用のアクセストークンをMisskeyに発行してもらいます。
|
|
|
|
|
|
|
|
|
|
#### 1.アプリケーションを登録する
|
|
|
|
|
まず、あなたのアプリケーションやWebサービス(以後、あなたのアプリと呼びます)をMisskeyに登録します。
|
|
|
|
|
[デベロッパーセンター](/dev)にアクセスし、「アプリ > アプリ作成」からアプリを作成してください。
|
|
|
|
|
|
|
|
|
|
登録が済むとあなたのアプリのシークレットキーが入手できます。このシークレットキーは後で使用します。
|
|
|
|
|
|
|
|
|
|
> アプリに成りすまされる可能性があるため、極力このシークレットキーは公開しないようにしてください。</p>
|
|
|
|
|
|
|
|
|
|
#### 2.ユーザーに認証させる
|
|
|
|
|
アプリを使ってもらうには、ユーザーにアカウントへのアクセスの許可をもらう必要があります。
|
|
|
|
|
|
2019-02-23 20:40:17 -07:00
|
|
|
|
認証セッションを開始するには、[${config.api_url}/auth/session/generate](#operation/auth/session/generate) へパラメータに appSecret としてシークレットキーを含めたリクエストを送信します。
|
2019-02-23 12:08:08 -07:00
|
|
|
|
リクエスト形式はJSONで、メソッドはPOSTです。
|
|
|
|
|
レスポンスとして認証セッションのトークンや認証フォームのURLが取得できるので、認証フォームのURLをブラウザで表示し、ユーザーにフォームを提示してください。
|
|
|
|
|
|
|
|
|
|
あなたのアプリがコールバックURLを設定している場合、
|
2019-02-23 20:40:17 -07:00
|
|
|
|
ユーザーがあなたのアプリの連携を許可すると設定しているコールバックURLに\`token\`という名前でセッションのトークンが含まれたクエリを付けてリダイレクトします。
|
2019-02-23 12:08:08 -07:00
|
|
|
|
|
|
|
|
|
あなたのアプリがコールバックURLを設定していない場合、ユーザーがあなたのアプリの連携を許可したことを(何らかの方法で(たとえばボタンを押させるなど))確認出来るようにしてください。
|
|
|
|
|
|
|
|
|
|
#### 3.ユーザートークンを取得する
|
2019-02-23 20:40:17 -07:00
|
|
|
|
ユーザーが連携を許可したら、[${config.api_url}/auth/session/userkey](#operation/auth/session/userkey) へリクエストを送信します。
|
2019-02-23 12:08:08 -07:00
|
|
|
|
|
|
|
|
|
上手くいけば、認証したユーザーのユーザートークンがレスポンスとして取得できます。おめでとうございます!
|
|
|
|
|
|
2019-02-23 20:40:17 -07:00
|
|
|
|
ユーザートークンが取得できたら、*「ユーザーのユーザートークン+あなたのアプリのシークレットキーをsha256したもの」*をアクセストークンとして、APIにリクエストできます。
|
2019-02-23 12:08:08 -07:00
|
|
|
|
|
|
|
|
|
アクセストークンの生成方法を擬似コードで表すと次のようになります:
|
2019-02-23 20:40:17 -07:00
|
|
|
|
\`\`\` js
|
|
|
|
|
const i = sha256(userToken + secretKey);
|
|
|
|
|
\`\`\`
|
2019-02-23 12:08:08 -07:00
|
|
|
|
`;
|