extend ../BASE block title | Getting Started block content h1 Getting Started p MisskeyはREST APIやStreaming APIを提供しており、プログラムからMisskeyの全ての機能を利用することができます。 p それらのAPIを利用するには、まずAPIを利用したいアカウントのアクセストークンを取得する必要があります: section h2 自分のアクセストークンを取得したい場合 p 自分自身のアクセストークンは、設定 > API で確認できます。 p.tip | アカウントを乗っ取られてしまう可能性があるため、トークンは第三者に教えないでください(アプリなどにも入力しないでください)。 br | 万が一トークンが漏れたりその可能性がある場合は トークンを再生成できます。(副作用として、ログインしているすべてのデバイスでログアウトが発生します) section h2 他人のアクセストークンを取得する p | 不特定多数のユーザーからAPIを利用したい場合、アプリケーションを作成します。 br | アプリケーションを作成すると、ユーザーが連携を許可した時に、そのユーザーのアクセストークンを取得することができます。 p アプリケーションを作成しアクセストークンを取得するまでの流れを見ていきます。 section h3 アプリケーションを作成する p まずはあなたのアプリケーションを作成しましょう。 p | デベロッパーセンターにアクセスし、アプリ > アプリ作成 に進みます。 br | 次に、フォームに必要事項を記入します: dl dt アプリケーション名 dd あなたのアプリケーションの名前。 dt Named ID dd アプリを識別する/a-z-/で構成されたID。 dt アプリの概要 dd アプリの簡単な説明を入力してください。 dt コールバックURL dd あなたのアプリケーションがWebアプリケーションである場合、ユーザーが後述するフォームで認証を終えた際にリダイレクトするURLを設定できます。 dt 権限 dd アプリケーションが要求する権限。ここで要求した機能だけがAPIからアクセスできます。 p.tip | 権限はアプリ作成後も変更できますが、新たな権限を付与する場合、その時点で関連付けられているユーザーはすべて無効になります。 p | アプリケーションを作成すると、作ったアプリの管理ページに進みます。 br | アプリのシークレットキー(App Secret)が表示されていますので、メモしておいてください。 p.tip | アプリに成りすまされる可能性があるため、極力このシークレットキーは公開しないようにしてください。 section h3 ユーザーに認証させる p あなたのアプリを使ってもらうには、ユーザーにアカウントへアクセスすることを許可してもらい、Misskeyにそのユーザーのアクセストークンを発行してもらう必要があります。 p 認証セッションを開始するには、#{api_url}/auth/session/generateへパラメータにapp_secretとしてApp Secretを含めたリクエストを送信します。 p | そうすると、レスポンスとして認証セッションのトークンや認証フォームのURLが取得できます。 br | この認証フォームのURLをブラウザで表示し、ユーザーにフォームを表示してください。 section h4 あなたのアプリがコールバックURLを設定している場合 p ユーザーがアプリの連携を許可すると設定しているコールバックURLにtokenという名前でセッションのトークンが含まれたクエリを付けてリダイレクトします。 section h4 あなたのアプリがコールバックURLを設定していない場合 p ユーザーがアプリの連携を許可したことを(何らかの方法で(たとえばボタンを押させるなど))確認出来るようにしてください。 p | 次に、#{api_url}/auth/session/userkeyapp_secretとしてApp Secretを、tokenとしてセッションのトークンをパラメータとして付与したリクエストを送信してください。 br | 上手くいけば、認証したユーザーのアクセストークンがレスポンスとして取得できます。おめでとうございます! p | 以降アクセストークンは、ユーザーのアクセストークン+アプリのシークレットキーをsha256したものとして扱います。 p アクセストークンを取得できたら、あとは簡単です。REST APIなら、リクエストにアクセストークンをiとしてパラメータに含めるだけです。 section h2 リクエスト形式 p application/jsonを受け付けます。 p.tip | 現在application/x-www-form-urlencodedも受け付けていますが、将来的にこのサポートはされなくなる予定です。