This commit is contained in:
syuilo 2017-12-16 01:06:28 +09:00
parent e1cc715589
commit 1a733f6b71
3 changed files with 69 additions and 2 deletions

66
src/web/docs/api.ja.pug Normal file
View file

@ -0,0 +1,66 @@
h1 Misskey API
p MisskeyはWeb APIを公開しており、アプリケーションから様々な操作を行うことができます。
section
h2 自分の所有するアカウントからAPIにアクセスする場合
p 「設定」で、APIにアクセスするのに必要なAPIキーを取得してください。
p APIにアクセスする際には、リクエストにAPIキーを「i」というパラメータ名で含めます。
p APIの詳しい使用法は「Misskey APIの利用」セクションをご覧ください。
section
h2 アプリケーションからAPIにアクセスする場合
p
| あなたのWebサービスやアプリケーションなどからMisskey APIを利用したい場合、
| ユーザーにアカウントへのアクセスを許可してもらい、ユーザーのアクセストークンを取得する必要があります。
p アクセストークンを取得するまでの流れを説明します。
section
h3 1.アプリケーションを登録する
p まず、あなたのWebサービスやアプリケーションをMisskeyに登録します。
p デベロッパーセンターから登録を行ってください。
p 登録が済むとアプリケーションのシークレットキーが入手できます。
section
h3 2.ユーザーに認証させる
p あなたのアプリケーションを使ってもらうには、ユーザーにアカウントへのアクセスの許可をもらう必要があります。
p
| 認証セッションを開始するには、#{common.config.api_url}/auth/session/generate へパラメータに app_secret としてシークレットキーを含めたリクエストを送信します。
| リクエスト形式はJSONで、メソッドはPOSTです。
| レスポンスとして認証セッションのトークンや認証フォームのURLが取得できるので、認証フォームのURLをブラウザで表示し、ユーザーにフォームを提示してください。
p
| あなたのアプリがコールバックURLを設定している場合、
| ユーザーがアプリの連携を許可すると設定しているコールバックURLに token という名前でセッションのトークンが含まれたクエリを付けてリダイレクトします。
p
| あなたのアプリがコールバックURLを設定していない場合、ユーザーがアプリの連携を許可したことを(何らかの方法で(たとえばボタンを押させるなど))確認出来るようにしてください。
section
h3 3.ユーザーのアクセストークンを取得する
p ユーザーが連携を許可したら、#{common.config.api_url}/auth/session/userkey へ次のパラメータを含むリクエストを送信します:
table
thead
tr
th 名前
th 型
th 説明
tbody
tr
td app_secret
td string
td アプリのシークレットキー
tr
td token
td string
td セッションのトークン
p 上手くいけば、認証したユーザーのアクセストークンがレスポンスとして取得できます。おめでとうございます!
p アクセストークンが取得できたら、「ユーザーのアクセストークン+アプリのシークレットキーをsha256したもの」を「i」というパラメータでリクエストに含めるだけで、APIにアクセスできます。
p APIの詳しい使用法は「Misskey APIの利用」セクションをご覧ください。
section
h2 Misskey APIの利用
p APIはすべてリクエストのパラメータ・レスポンスともにJSON形式です。また、すべてのエンドポイントはPOSTメソッドのみ受け付けます。
p APIリファレンスもご確認ください。

View file

@ -77,8 +77,6 @@ table
tbody tbody
tr tr
border-bottom dashed 1px #eee
&:nth-child(odd) &:nth-child(odd)
background #fbfbfb background #fbfbfb

View file

@ -1,6 +1,7 @@
import * as fs from 'fs'; import * as fs from 'fs';
import * as glob from 'glob'; import * as glob from 'glob';
import * as yaml from 'js-yaml'; import * as yaml from 'js-yaml';
import config from '../../conf';
export default function() { export default function() {
const vars = {}; const vars = {};
@ -32,5 +33,7 @@ export default function() {
vars['kebab'] = string => string.replace(/([a-z])([A-Z])/g, '$1-$2').replace(/\s+/g, '-').toLowerCase(); vars['kebab'] = string => string.replace(/([a-z])([A-Z])/g, '$1-$2').replace(/\s+/g, '-').toLowerCase();
vars['config'] = config;
return vars; return vars;
} }