Skip to content
Takahiro Miyoshi edited this page Apr 25, 2020 · 9 revisions

LiveLog GraphQL API

LiveLog GraphQL API は未完成です。 バグ報告や機能リクエスト、質問、フィードバックは GitHub IssuesSlackTwitter のいずれでも受け付けているので、気軽にお声掛けください。

エンドポイント

https://livelog.ku-unplugged.net/api/graphql

GraphQL について

GraphQL は API のためのクエリ言語です。 LiveLog GraphQL API は GraphQL Ruby を使って実装されています。 GraphQL について知るには、公式ドキュメント https://graphql.org/learn/ を参照してください。

LiveLog GraphiQL

GraphiQL は GraphQL API をブラウザで試すことのできる IDE です。 LiveLog では https://livelog.ku-unplugged.net/graphiql で LiveLog GraphQL API 用にセットアップしたものを提供しています。

認証

LiveLog GraphQL API は OAuth 2.0 に則って保護されています。 そのため、API を利用するには、アクセストークンを取得し、Authorization リクエストヘッダに含める必要があります。 また、LiveLog では Auth0 を利用しており、アクセストークンは Auth0 の認可サーバーにより発行されます。

Auth0 について

Auth0 は、IDaaS と呼ばれるもののひとつで、認証認可など Identity にまつわる機能を Web サービスとして提供しています。 LiveLog ユーザーのメールアドレス・パスワードといった Identity 情報は Auth0 で管理されています。

LiveLog で利用してる Auth0 テナントのドメインは patient-bar-7812.auth0.com です。 Auth0 は OAuth 2.0 の拡張である OpenID Connect にも準拠しており、トークン取得に必要な情報は https://patient-bar-7812.auth0.com/.well-known/openid-configuration で確認できます。

クライアント登録

はじめに、LiveLog に開発者登録します。 LiveLog にログインし、開発者設定 の「GitHub アカウントと連携して開発者登録する」ボタンを押します。

次に、LiveLog にクライアントアプリケーションを登録します。 開発者設定の「アプリケーションを登録する」ボタンを押します。

フォームの「名前」にアプリケーション名を入力、適切な「アプリケーションの種類」を選択し、登録します。 アプリケーションの種類の詳細については https://auth0.com/docs/getting-started/set-up-app を参照してください。 リンク先からお察しの通り、フォームを送信した裏側では Auth0 Management API v2 で Auth0 へのクライアント登録を行っています。

アプリケーション登録が完了すると、Client ID と Client Secret が発行されます。 これで、アクセストークンを取得する準備が整いました。

アクセストークンの取得

LiveLog GraphQL API 用のアクセストークンを発行する場合は、認可エンドポイントまたはトークンエンドポイントの audience パラメータに https://livelog.ku-unplugged.net/api/ を指定してください。 また、利用可能なスコープの一覧は https://livelog.ku-unplugged.net/api/scopes で確認できます。

より具体的なアクセストークンの取得方法は、アプリケーションの種類ごとに以下のドキュメントを参照してください。

参考までに、https://github.com/sankichi92/livelog-client-sample-sinatra に Authorization Code フローでアクセストークンを取得し、LiveLog GraphQL API を叩いてアルバム URL を取得するサンプルアプリがあります。