diff --git a/content/ja/docs/4.for-developers/api/token/1.index.md b/content/ja/docs/4.for-developers/api/token/1.index.md new file mode 100644 index 00000000..428cf044 --- /dev/null +++ b/content/ja/docs/4.for-developers/api/token/1.index.md @@ -0,0 +1,85 @@ +# アクセストークンの取得 + +APIを使い始めるには、APIを利用するアカウントに紐づいた**アクセストークン**を取得する必要があります。 +このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 + +基本的に、APIはリクエストにはアクセストークンが必要となります。 +アクセストークンは、ユーザーに紐づいた認証情報で、APIを利用するユーザーを識別するとともに、アクセストークンごとにどういった操作の権限を持っているかが管理されます。 + +:::tip + +ユーザーとそのユーザーに紐づいたアクセストークンは一対多の関係であり、あるユーザーに対して複数のアクセストークンが発行され得ます。 + +::: + +あなた自分自身のアクセストークンは簡単に取得できるほか、あなたのアプリケーションを使用することになる不特定のユーザーのアクセストークンを取得することもできます。 + +- 前者の場合: **「自分自身のアクセストークンを手動発行する」** に進む +- 後者の場合: **「アプリケーション利用者にアクセストークンの発行をリクエストする」** に進む + +## 自分自身のアクセストークンを手動発行する +Misskey Webの「設定 > API」で、自分のアクセストークンを発行できます。 + +:::danger + +アクセストークンは他人に知られないようにしてください。 + +::: + +## アプリケーション利用者にアクセストークンの発行をリクエストする +アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の方法の一つを使います。 + +:MkIndex + +## APIの利用 + +アクセストークンが取得できたら、各種エンドポイントにリクエストすることでAPIの利用が行えます。 + +:::tip + +- HTTP APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です(drive/files/createを除く)。 +- 要求ヘッダーに`Content-Type: application/json`を指定します。 +- アクセストークンは、`i`というパラメータ名でリクエストボディJSONに含めます。 +- ベースURLは`https://{サーバーのドメイン}/api`です。 + +::: + +### Authorization headerを使う方式 + +以下のようにヘッダーの`Authorization`フィールドを指定します。 + +```js +fetch("https://misskey.io/api/notes/create", { + method: 'POST', + body: JSON.stringify({ + text: "Hello Misskey API World with My Application!" + }), + headers: { + Authorization: `Bearer ${accessToken}`, + 'Content-Type': 'application/json', + }, + credentials: 'omit', +}); +``` + +### iを使う方式 + +アクセストークン付きのボディの例(metaの場合): + +```json +{ + "i": "HogEFugA1341", + "detail": false +} +``` + + +APIの詳細は、APIリファレンスを参照してください。 + +:::warning + +MisskeyはRESTを採用していません。 + +::: + +また、MisskeyはHTTP APIだけでなく、ストリーミングAPIも提供しています。ストリーミングAPIの詳細は[こちらのドキュメント](../streaming/)を参照してください。 diff --git a/content/ja/docs/4.for-developers/api/token.md b/content/ja/docs/4.for-developers/api/token/2.miauth.md similarity index 50% rename from content/ja/docs/4.for-developers/api/token.md rename to content/ja/docs/4.for-developers/api/token/2.miauth.md index 22dc5e74..8cfc21c4 100644 --- a/content/ja/docs/4.for-developers/api/token.md +++ b/content/ja/docs/4.for-developers/api/token/2.miauth.md @@ -1,42 +1,20 @@ -# アクセストークンの取得 +--- +description: v12.27.0以降で使用できる、Misskey独自の簡素な認証方法について説明しています。 +--- -APIを使い始めるには、APIを利用するアカウントに紐づいた**アクセストークン**を取得する必要があります。 -このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 +# MiAuth方式でのアクセストークン取得方式 -基本的に、APIはリクエストにはアクセストークンが必要となります。 -アクセストークンは、ユーザーに紐づいた認証情報で、APIを利用するユーザーを識別するとともに、アクセストークンごとにどういった操作の権限を持っているかが管理されます。 - -:::tip - -ユーザーとそのユーザーに紐づいたアクセストークンは一対多の関係であり、あるユーザーに対して複数のアクセストークンが発行され得ます。 - -::: - -あなた自分自身のアクセストークンは簡単に取得できるほか、あなたのアプリケーションを使用することになる不特定のユーザーのアクセストークンを取得することもできます。 - -- 前者の場合: **「自分自身のアクセストークンを手動発行する」** に進む -- 後者の場合: **「アプリケーション利用者にアクセストークンの発行をリクエストする」** に進む - -### 自分自身のアクセストークンを手動発行する -Misskey Webの「設定 > API」で、自分のアクセストークンを発行できます。 - -:::danger - -アクセストークンは他人に知られないようにしてください。 - -::: - -### アプリケーション利用者にアクセストークンの発行をリクエストする アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の手順で発行をリクエストします。 :::tip 以下に説明する方法は、アプリを作成せずインスタントにアクセストークンを発行する、MiAuthと呼ばれるものです。 -[アプリ作成方式でのアクセストークン取得方法もあります(旧来型)。](./app) +- [よりおおく使われているOAuth方式でのアクセストークン取得方法もあります。](./oauth.md) +- [アプリ作成方式でのアクセストークン取得方法もあります(旧来型)。](./app.md) ::: -#### Step 1 +## Step 1 UUIDを生成する。以後これを**セッションID**と呼びます。 :::danger @@ -45,7 +23,7 @@ UUIDを生成する。以後これを**セッションID**と呼びます。 ::: -#### Step 2 +## Step 2 アプリケーション認証フォームをユーザーのブラウザで表示させる。認証フォームは、以下の形式のURLで開くことができます: ``` @@ -73,7 +51,7 @@ https://misskey.io/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f?name=MyApp&callba ::: -#### Step 3 +## Step 3 ユーザーがアプリケーションアクセスを許可した後、次の形式のURLにPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 ``` @@ -90,35 +68,3 @@ https://{host}/api/miauth/{session}/check | ------- | ---------------------------- | | `token` | ユーザーのアクセストークン。 | | `user` | ユーザーの情報。 | - -## APIの利用 -アクセストークンが取得できたら、各種エンドポイントにリクエストすることでAPIの利用が行えます。 - -:::tip - -- HTTP APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です(drive/files/createを除く)。 -- 要求ヘッダーに`Content-Type: application/json`を指定します。 -- アクセストークンは、`i`というパラメータ名でリクエストボディJSONに含めます。 -- ベースURLは`https://{サーバーのドメイン}/api`です。 - -::: - -アクセストークン付きのボディの例(metaの場合): - -```json -{ - "i": "HogEFugA1341", - "detail": false -} -``` - - -APIの詳細は、APIリファレンスを参照してください。 - -:::warning - -MisskeyはRESTを採用していません。 - -::: - -また、MisskeyはHTTP APIだけでなく、ストリーミングAPIも提供しています。ストリーミングAPIの詳細は[こちらのドキュメント](./streaming/index.md)を参照してください。 \ No newline at end of file diff --git a/content/ja/docs/4.for-developers/api/token/3.oauth.md b/content/ja/docs/4.for-developers/api/token/3.oauth.md new file mode 100644 index 00000000..06a36e13 --- /dev/null +++ b/content/ja/docs/4.for-developers/api/token/3.oauth.md @@ -0,0 +1,177 @@ +--- +description: v2023.9.0以降で使用できる、OAuth2.0方式での認証方法について説明しています。 +--- + +# OAuth方式でのアクセストークン取得方式 + +アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の手順で発行をリクエストします。 + +:::tip + +以下に説明する方法は、[OAuth 2.0](https://datatracker.ietf.org/doc/html/rfc6749.html)と呼ばれるものです。普通のOAuthはアプリを作成しますが、[IndieAuth](https://indieauth.spec.indieweb.org/)の拡張でアプリ作成なしで使えるようになっています。 + +OAuth方式は使えるライブラリが多いので、出来ればライブラリを使うのをおすすめします。 + +現在、この方式を使うためにはウェブページが必要になります。どうしてもウェブページを用意できない場合、もしくはMisskey 2023.9.0以前のバージョンをサポートしたい場合、以下の方式を使ってください。 + +- [Misskey専用のMiAuth方式でのアクセストークン取得方法](./oauth.md) +- [アプリ作成方式でのアクセストークン取得方法(旧来型)。](./app.md) +::: + +## Step 1 + +アプリ紹介のためのウェブページを作ります。ページがHTTPSアドレスでアクセスできるようにしてください。ページのとこかに以下のようなHTMLコードを書きます。 + +```html + + + + +