2017-12-16 01:06:28 +09:00
|
|
|
h1 Misskey API
|
|
|
|
|
2017-12-17 07:55:57 +09:00
|
|
|
p MisskeyはWeb APIを公開しており、様々な操作をプログラム上から行うことができます。
|
2017-12-17 13:04:19 +09:00
|
|
|
p APIを自分のアカウントから利用する場合(自分のアカウントのみ操作したい場合)と、アプリケーションから利用する場合(不特定のアカウントを操作したい場合)とで利用手順が異なりますので、それぞれのケースについて説明します。
|
2017-12-16 01:06:28 +09:00
|
|
|
|
|
|
|
section
|
|
|
|
h2 自分の所有するアカウントからAPIにアクセスする場合
|
2017-12-17 07:55:57 +09:00
|
|
|
p 「設定 > API」で、APIにアクセスするのに必要なAPIキーを取得してください。
|
2017-12-16 01:06:28 +09:00
|
|
|
p APIにアクセスする際には、リクエストにAPIキーを「i」というパラメータ名で含めます。
|
2017-12-17 14:35:30 +09:00
|
|
|
div.ui.info.warn: p %fa:exclamation-triangle%アカウントを不正利用される可能性があるため、このトークンは第三者に教えないでください(アプリなどにも入力しないでください)。
|
2017-12-16 01:06:28 +09:00
|
|
|
p APIの詳しい使用法は「Misskey APIの利用」セクションをご覧ください。
|
|
|
|
|
|
|
|
section
|
|
|
|
h2 アプリケーションからAPIにアクセスする場合
|
|
|
|
p
|
2017-12-17 07:55:57 +09:00
|
|
|
| 直接ユーザーのAPIキーをアプリケーションが扱うのは危険なので、
|
|
|
|
| アプリケーションからAPIを利用する際には、アプリケーションとアプリケーションを利用するユーザーが結び付けられた専用のトークン(アクセストークン)をMisskeyに発行してもらい、
|
|
|
|
| そのトークンをリクエストのパラメータに含める必要があります。
|
2017-12-17 14:35:30 +09:00
|
|
|
div.ui.info: p %fa:info-circle%アクセストークンは、ユーザーが自分のアカウントにあなたのアプリケーションがアクセスすることを許可した場合のみ発行されます
|
2017-12-17 07:55:57 +09:00
|
|
|
|
|
|
|
p それでは、アクセストークンを取得するまでの流れを説明します。
|
2017-12-16 01:06:28 +09:00
|
|
|
|
|
|
|
section
|
|
|
|
h3 1.アプリケーションを登録する
|
2017-12-18 00:37:19 +09:00
|
|
|
p まず、あなたのアプリケーションやWebサービス(以後、あなたのアプリと呼びます)をMisskeyに登録します。
|
2017-12-17 07:55:57 +09:00
|
|
|
p
|
|
|
|
a(href=common.config.dev_url, target="_blank") デベロッパーセンター
|
|
|
|
| にアクセスし、「アプリ > アプリ作成」に進みます。
|
|
|
|
| フォームに必要事項を記入し、アプリを作成してください。フォームの記入欄の説明は以下の通りです:
|
|
|
|
|
|
|
|
table
|
|
|
|
thead
|
|
|
|
tr
|
|
|
|
th 名前
|
|
|
|
th 説明
|
|
|
|
tbody
|
|
|
|
tr
|
|
|
|
td アプリケーション名
|
2017-12-18 00:37:19 +09:00
|
|
|
td あなたのアプリの名称。
|
2017-12-17 07:55:57 +09:00
|
|
|
tr
|
|
|
|
td アプリの概要
|
2017-12-18 00:37:19 +09:00
|
|
|
td あなたのアプリの簡単な説明や紹介。
|
2017-12-17 07:55:57 +09:00
|
|
|
tr
|
|
|
|
td コールバックURL
|
2017-12-19 16:10:33 +09:00
|
|
|
td ユーザーが後述する認証フォームで認証を終えた際にリダイレクトするURLを設定できます。あなたのアプリがWebサービスである場合に有用です。
|
2017-12-17 07:55:57 +09:00
|
|
|
tr
|
|
|
|
td 権限
|
2017-12-18 00:37:19 +09:00
|
|
|
td あなたのアプリが要求する権限。ここで要求した機能だけがAPIからアクセスできます。
|
2017-12-17 07:55:57 +09:00
|
|
|
|
2017-12-18 00:37:19 +09:00
|
|
|
p 登録が済むとあなたのアプリのシークレットキーが入手できます。このシークレットキーは後で使用します。
|
2017-12-17 14:35:30 +09:00
|
|
|
div.ui.info.warn: p %fa:exclamation-triangle%アプリに成りすまされる可能性があるため、極力このシークレットキーは公開しないようにしてください。
|
2017-12-16 01:06:28 +09:00
|
|
|
|
|
|
|
section
|
|
|
|
h3 2.ユーザーに認証させる
|
2017-12-18 00:37:19 +09:00
|
|
|
p あなたのアプリを使ってもらうには、ユーザーにアカウントへのアクセスの許可をもらう必要があります。
|
2017-12-16 01:06:28 +09:00
|
|
|
p
|
2018-03-29 14:48:47 +09:00
|
|
|
| 認証セッションを開始するには、#{common.config.api_url}/auth/session/generate へパラメータに appSecret としてシークレットキーを含めたリクエストを送信します。
|
2017-12-16 01:06:28 +09:00
|
|
|
| リクエスト形式はJSONで、メソッドはPOSTです。
|
|
|
|
| レスポンスとして認証セッションのトークンや認証フォームのURLが取得できるので、認証フォームのURLをブラウザで表示し、ユーザーにフォームを提示してください。
|
|
|
|
|
|
|
|
p
|
|
|
|
| あなたのアプリがコールバックURLを設定している場合、
|
2017-12-18 00:37:19 +09:00
|
|
|
| ユーザーがあなたのアプリの連携を許可すると設定しているコールバックURLに token という名前でセッションのトークンが含まれたクエリを付けてリダイレクトします。
|
2017-12-16 01:06:28 +09:00
|
|
|
|
|
|
|
p
|
2017-12-18 00:37:19 +09:00
|
|
|
| あなたのアプリがコールバックURLを設定していない場合、ユーザーがあなたのアプリの連携を許可したことを(何らかの方法で(たとえばボタンを押させるなど))確認出来るようにしてください。
|
2017-12-16 01:06:28 +09:00
|
|
|
|
|
|
|
section
|
|
|
|
h3 3.ユーザーのアクセストークンを取得する
|
|
|
|
p ユーザーが連携を許可したら、#{common.config.api_url}/auth/session/userkey へ次のパラメータを含むリクエストを送信します:
|
|
|
|
table
|
|
|
|
thead
|
|
|
|
tr
|
|
|
|
th 名前
|
|
|
|
th 型
|
|
|
|
th 説明
|
|
|
|
tbody
|
|
|
|
tr
|
2018-03-29 14:48:47 +09:00
|
|
|
td appSecret
|
2017-12-16 01:06:28 +09:00
|
|
|
td string
|
2017-12-18 00:37:19 +09:00
|
|
|
td あなたのアプリのシークレットキー
|
2017-12-16 01:06:28 +09:00
|
|
|
tr
|
|
|
|
td token
|
|
|
|
td string
|
|
|
|
td セッションのトークン
|
|
|
|
p 上手くいけば、認証したユーザーのアクセストークンがレスポンスとして取得できます。おめでとうございます!
|
|
|
|
|
2017-12-18 00:37:19 +09:00
|
|
|
p アクセストークンが取得できたら、「ユーザーのアクセストークン+あなたのアプリのシークレットキーをsha256したもの」を「i」というパラメータでリクエストに含めると、APIにアクセスすることができます。
|
2017-12-16 01:06:28 +09:00
|
|
|
|
2017-12-18 04:17:18 +09:00
|
|
|
p 「i」パラメータの生成方法を擬似コードで表すと次のようになります:
|
|
|
|
pre: code
|
|
|
|
| const i = sha256(accessToken + secretKey);
|
|
|
|
|
2017-12-16 01:06:28 +09:00
|
|
|
p APIの詳しい使用法は「Misskey APIの利用」セクションをご覧ください。
|
|
|
|
|
|
|
|
section
|
|
|
|
h2 Misskey APIの利用
|
|
|
|
p APIはすべてリクエストのパラメータ・レスポンスともにJSON形式です。また、すべてのエンドポイントはPOSTメソッドのみ受け付けます。
|
|
|
|
p APIリファレンスもご確認ください。
|
2017-12-17 14:35:30 +09:00
|
|
|
|
2017-12-17 07:55:57 +09:00
|
|
|
section
|
|
|
|
h3 レートリミット
|
|
|
|
p Misskey APIにはレートリミットがあり、短時間のうちに多数のリクエストを送信すると、一定時間APIを利用することができなくなることがあります。
|