jointrashposs/content/en/docs/4.for-developers/api/token.md

126 lines
5.7 KiB
Markdown
Raw Normal View History

New Crowdin updates (#23) * New translations role.md (Korean) * New translations role.md (Polish) * New translations role.md (Chinese Simplified) * New translations role.md (English) * New translations role.md (Indonesian) * New translations _dir.yml (French) * New translations _dir.yml (Italian) * New translations _dir.yml (Korean) * New translations _dir.yml (Polish) * New translations _dir.yml (Chinese Simplified) * New translations _dir.yml (English) * New translations _dir.yml (Indonesian) * New translations 1.index.md (French) * New translations 1.index.md (Italian) * New translations 1.index.md (Korean) * New translations 1.index.md (Polish) * New translations 1.index.md (Chinese Simplified) * New translations 1.index.md (English) * New translations 1.index.md (Indonesian) * New translations bash.md (French) * New translations bash.md (Italian) * New translations bash.md (Korean) * New translations bash.md (Polish) * New translations bash.md (Chinese Simplified) * New translations bash.md (English) * New translations bash.md (Indonesian) * New translations docker.md (French) * New translations docker.md (Italian) * New translations docker.md (Korean) * New translations docker.md (Polish) * New translations docker.md (Chinese Simplified) * New translations docker.md (English) * New translations docker.md (Indonesian) * New translations kubernetes.md (French) * New translations kubernetes.md (Italian) * New translations kubernetes.md (Korean) * New translations kubernetes.md (Polish) * New translations kubernetes.md (Chinese Simplified) * New translations kubernetes.md (English) * New translations kubernetes.md (Indonesian) * New translations manual.md (French) * New translations manual.md (Italian) * New translations manual.md (Korean) * New translations manual.md (Polish) * New translations manual.md (Chinese Simplified) * New translations manual.md (English) * New translations manual.md (Indonesian) * New translations ubuntu-manual.md (French) * New translations ubuntu-manual.md (Italian) * New translations ubuntu-manual.md (Korean) * New translations ubuntu-manual.md (Polish) * New translations ubuntu-manual.md (Chinese Simplified) * New translations ubuntu-manual.md (English) * New translations ubuntu-manual.md (Indonesian) * New translations _dir.yml (French) * New translations _dir.yml (Italian) * New translations _dir.yml (Korean) * New translations _dir.yml (Polish) * New translations _dir.yml (Chinese Simplified) * New translations _dir.yml (English) * New translations _dir.yml (Indonesian) * New translations cdn.md (French) * New translations cdn.md (Italian) * New translations cdn.md (Korean) * New translations cdn.md (Polish) * New translations cdn.md (Chinese Simplified) * New translations cdn.md (English) * New translations cdn.md (Indonesian) * New translations nginx.md (French) * New translations nginx.md (Italian) * New translations nginx.md (Korean) * New translations nginx.md (Polish) * New translations nginx.md (Chinese Simplified) * New translations nginx.md (English) * New translations nginx.md (Indonesian) * New translations push-docker-hub.md (French) * New translations push-docker-hub.md (Italian) * New translations push-docker-hub.md (Korean) * New translations push-docker-hub.md (Polish) * New translations push-docker-hub.md (Chinese Simplified) * New translations push-docker-hub.md (English) * New translations push-docker-hub.md (Indonesian) * New translations scale-out.md (French) * New translations scale-out.md (Italian) * New translations scale-out.md (Korean) * New translations scale-out.md (Polish) * New translations scale-out.md (Chinese Simplified) * New translations scale-out.md (English) * New translations scale-out.md (Indonesian) * New translations troubleshooting.md (French) * New translations troubleshooting.md (Italian) * New translations troubleshooting.md (Korean) * New translations troubleshooting.md (Polish) * New translations troubleshooting.md (Chinese Simplified) * New translations troubleshooting.md (English) * New translations troubleshooting.md (Indonesian) * New translations _dir.yml (French) * New translations _dir.yml (Italian) * New translations _dir.yml (Korean) * New translations _dir.yml (Polish) * New translations _dir.yml (Chinese Simplified) * New translations _dir.yml (English) * New translations _dir.yml (Indonesian) * New translations disable-timelines.md (French) * New translations disable-timelines.md (Italian) * New translations disable-timelines.md (Korean) * New translations disable-timelines.md (Polish) * New translations disable-timelines.md (Chinese Simplified) * New translations disable-timelines.md (English) * New translations disable-timelines.md (Indonesian) * New translations _dir.yml (French) * New translations _dir.yml (Italian) * New translations _dir.yml (Korean) * New translations _dir.yml (Polish) * New translations _dir.yml (Chinese Simplified) * New translations _dir.yml (English) * New translations _dir.yml (Indonesian) * New translations 1.index.md (French) * New translations 1.index.md (Italian) * New translations 1.index.md (Korean) * New translations 1.index.md (Polish) * New translations 1.index.md (Chinese Simplified) * New translations 1.index.md (English) * New translations 1.index.md (Indonesian) * New translations libraries.md (French) * New translations libraries.md (Italian) * New translations libraries.md (Korean) * New translations libraries.md (Polish) * New translations libraries.md (Chinese Simplified) * New translations libraries.md (English) * New translations libraries.md (Indonesian) * New translations permission.md (French) * New translations permission.md (Italian) * New translations permission.md (Korean) * New translations permission.md (Polish) * New translations permission.md (Chinese Simplified) * New translations permission.md (English) * New translations permission.md (Indonesian) * New translations 1.index.md (French) * New translations 1.index.md (Italian) * New translations 1.index.md (Korean) * New translations 1.index.md (Polish) * New translations 1.index.md (Chinese Simplified) * New translations 1.index.md (English) * New translations 1.index.md (Indonesian) * New translations 1.index.md (French) * New translations 1.index.md (Italian) * New translations 1.index.md (Korean) * New translations 1.index.md (Polish) * New translations 1.index.md (Chinese Simplified) * New translations 1.index.md (English) * New translations 1.index.md (Indonesian) * New translations global-timeline.md (French) * New translations global-timeline.md (Italian) * New translations global-timeline.md (Korean) * New translations global-timeline.md (Polish) * New translations global-timeline.md (Chinese Simplified) * New translations global-timeline.md (English) * New translations global-timeline.md (Indonesian) * New translations home-timeline.md (French) * New translations home-timeline.md (Italian) * New translations home-timeline.md (Korean) * New translations home-timeline.md (Polish) * New translations home-timeline.md (Chinese Simplified) * New translations home-timeline.md (English) * New translations home-timeline.md (Indonesian) * New translations hybrid-timeline.md (French) * New translations hybrid-timeline.md (Italian) * New translations hybrid-timeline.md (Korean) * New translations hybrid-timeline.md (Polish) * New translations hybrid-timeline.md (Chinese Simplified) * New translations hybrid-timeline.md (English) * New translations hybrid-timeline.md (Indonesian) * New translations index.md (French) * New translations index.md (Italian) * New translations index.md (Korean) * New translations index.md (Polish) * New translations index.md (Chinese Simplified) * New translations index.md (English) * New translations index.md (Indonesian) * New translations local-timeline.md (French) * New translations local-timeline.md (Italian) * New translations local-timeline.md (Korean) * New translations local-timeline.md (Polish) * New translations local-timeline.md (Chinese Simplified) * New translations local-timeline.md (English) * New translations local-timeline.md (Indonesian) * New translations main.md (French) * New translations main.md (Italian) * New translations main.md (Korean) * New translations main.md (Polish) * New translations main.md (Chinese Simplified) * New translations main.md (English) * New translations main.md (Indonesian) * New translations note-capture-events.md (French) * New translations note-capture-events.md (Italian) * New translations note-capture-events.md (Korean) * New translations note-capture-events.md (Polish) * New translations note-capture-events.md (Chinese Simplified) * New translations note-capture-events.md (English) * New translations note-capture-events.md (Indonesian) * New translations token.md (French) * New translations token.md (Italian) * New translations token.md (Korean) * New translations token.md (Polish) * New translations token.md (Chinese Simplified) * New translations token.md (English) * New translations token.md (Indonesian) * New translations 1.index.md (French) * New translations 1.index.md (Italian) * New translations 1.index.md (Korean) * New translations 1.index.md (Polish) * New translations 1.index.md (Chinese Simplified) * New translations 1.index.md (English) * New translations 1.index.md (Indonesian) * New translations _dir.yml (French) * New translations _dir.yml (Italian) * New translations _dir.yml (Korean) * New translations _dir.yml (Polish) * New translations _dir.yml (Chinese Simplified) * New translations _dir.yml (English) * New translations _dir.yml (Indonesian) * New translations create-plugin.md (French) * New translations create-plugin.md (Italian) * New translations create-plugin.md (Korean) * New translations create-plugin.md (Polish) * New translations create-plugin.md (Chinese Simplified) * New translations create-plugin.md (English) * New translations create-plugin.md (Indonesian) * New translations plugin-api-reference.md (French) * New translations plugin-api-reference.md (Italian) * New translations plugin-api-reference.md (Korean) * New translations plugin-api-reference.md (Polish) * New translations plugin-api-reference.md (Chinese Simplified) * New translations plugin-api-reference.md (English) * New translations plugin-api-reference.md (Indonesian) * New translations publish-on-your-website.md (French) * New translations publish-on-your-website.md (Italian) * New translations publish-on-your-website.md (Korean) * New translations publish-on-your-website.md (Polish) * New translations publish-on-your-website.md (Chinese Simplified) * New translations publish-on-your-website.md (English) * New translations publish-on-your-website.md (Indonesian) * New translations 5.releases.md (French) * New translations 5.releases.md (Italian) * New translations 5.releases.md (Korean) * New translations 5.releases.md (Polish) * New translations 5.releases.md (Chinese Simplified) * New translations 5.releases.md (English) * New translations 5.releases.md (Indonesian)
2023-11-18 07:39:00 +01:00
# アクセストークンの取得
APIを使い始めるには、APIを利用するアカウントに紐づいた**アクセストークン**を取得する必要があります。
このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。
基本的に、APIはリクエストにはアクセストークンが必要となります。
アクセストークンは、ユーザーに紐づいた認証情報で、APIを利用するユーザーを識別するとともに、アクセストークンごとにどういった操作の権限を持っているかが管理されます。
:::tip
ユーザーとそのユーザーに紐づいたアクセストークンは一対多の関係であり、あるユーザーに対して複数のアクセストークンが発行され得ます。
:::
あなた自分自身のアクセストークンは簡単に取得できるほか、あなたのアプリケーションを使用することになる不特定のユーザーのアクセストークンを取得することもできます。
- 前者の場合: **「自分自身のアクセストークンを手動発行する」** に進む
- 後者の場合: **「アプリケーション利用者にアクセストークンの発行をリクエストする」** に進む
### 自分自身のアクセストークンを手動発行する
Misskey Webの「設定 > API」で、自分のアクセストークンを発行できます。
:::danger
アクセストークンは他人に知られないようにしてください。
:::
### アプリケーション利用者にアクセストークンの発行をリクエストする
アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の手順で発行をリクエストします。
:::tip
以下に説明する方法は、アプリを作成せずインスタントにアクセストークンを発行する、MiAuthと呼ばれるものです。
[アプリ作成方式でのアクセストークン取得方法もあります(旧来型)。](./app)
:::
#### Step 1
UUIDを生成する。以後これを**セッションID**と呼びます。
:::danger
このセッションIDは毎回生成し、使いまわさないようにしてください。
:::
#### Step 2
アプリケーション認証フォームをユーザーのブラウザで表示させる。認証フォームは、以下の形式のURLで開くことができます:
```
https://{host}/miauth/{session}
```
ここで、
- `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。通常ホストはユーザーが入力します。
- `{session}`の部分は、セッションIDに置き換えます。
また、URLにクエリパラメータとしていくつかのオプションを設定できます:
| 名前 | 説明 |
| ------------ | ----------------------------------------------------------------------------- |
| `name` | アプリケーション名。 |
| `icon` | アプリケーションのアイコン画像URL。 |
| `callback` | 認証が終わった後にリダイレクトするURL。<br>リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます。 |
| `permission` | アプリケーションが要求する権限。<br>要求する権限を`,`で区切って列挙します。権限の一覧は[こちら](./permission.md)で確認できます。 |
:::tip{label='例'}
```
https://misskey.io/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f?name=MyApp&callback=https%3A%2F%2Fmyapp.example.com%2Fcallback&permission=write:notes,write:following,read:drive
```
:::
#### Step 3
ユーザーがアプリケーションアクセスを許可した後、次の形式のURLにPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。
```
https://{host}/api/miauth/{session}/check
```
ここで、
- `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。
- `{session}`の部分は、セッションIDに置き換えます。
レスポンスに含まれるプロパティは以下の通りです:
| 名前 | 説明 |
| ------- | -------------- |
| `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
}
```
<!--TODO:「APIリファレンス」をリンクに差し替え-->
APIの詳細は、APIリファレンスを参照してください。
:::warning
MisskeyはRESTを採用していません。
:::
また、MisskeyはHTTP APIだけでなく、ストリーミングAPIも提供しています。ストリーミングAPIの詳細は[こちらのドキュメント](./streaming/index.md)を参照してください。