mixi Connect » mixi Graph API » 技術仕様 » UserInfo API
UserInfo API
UserInfo APIはOpenID Connectという認証連携の標準化プロトコルでUserInfo Endpointとして定義されている、ユーザの属性情報を提供するAPIです。
OpenID Connect Core 1.0 (http://openid.net/specs/openid-connect-core-1_0.html)
UserInfo APIによってユーザの識別子、mixiに蓄積されているプロフィール情報、ログイン時に利用しているメールアドレスなど、認可したユーザーの基本的な属性情報を標準化されたフォーマットで取得できます。あなたのアプリケーションの新規アカウント登録時などにこれらの情報を使うことで、ユーザの"いつもの情報"を入力する手間を省くことができ、使い勝手の向上へとつながるでしょう。
ここでは、UserInfo APIの使用方法について説明します。
事前に必要なもの
UserInfo APIを利用するためには、以下の情報をすでに入手している必要があります。
- "openid"スコープについて認可されたアクセストークン
- "openid"と"profile"、"email"スコープのいずれかもしくは両方の組み合わせについて認可されたアクセストークン
上記以外のスコープで認可されたアクセストークンを使用して、UserInfo APIにアクセスすることはできません。アクセストークンの入手方法については、認証認可手順のページをご覧ください。
属性情報の取得
認可したユーザ本人の属性情報を取得するためのURIは以下となります。メソッドはGETとPOSTの両方に対応しています。
https://api.mixi-platform.com/2/openid/userinfo
アクセストークン以外にリクエストパラメータ、リクエストボディには何も指定する必要はありません。
ユーザが認可したスコープの値により、取得できる属性情報が異なります。
属性名 | 説明 | 必要なスコープの値 |
---|---|---|
sub | ユーザのID | openid |
name | ユーザのニックネーム | profile |
given_name | ユーザの名前 | profile |
family_name | ユーザの名字 | profile |
nickname | ユーザのニックネーム | profile |
preferred_username | ユーザのニックネーム | profile |
profile | ユーザのプロフィルページのURL | profile |
picture |
ユーザがプロフィール画像として設定しているイメージのURL。 友人以外の全てのmixiユーザが見ることができるプロフィール画像となります。 |
profile |
gender | ユーザの性別。書式は「male」もしくは「female」となります。 | profile |
birthdate |
ユーザの生年月日。日時の書式は「yyyy-mm-dd」となります。 yyyy/mm/ddでそれぞれ取得できなかった情報は0にマスクされます。 |
profile |
ユーザのメールアドレス。ログインメールアドレスです。 | ||
email_verified |
メールアドレスが確認済かどうか。 ログインメールアドレスは確認済のため、値は必ずtrue(真)となります。 |
"profile"、"email"の2つのスコープについては、ユーザが個別に属性情報へのアクセスを拒否することができます。拒否されたscopeに対してはUserInfo APIのレスポンスに対応する属性情報が含まれません。
以下はレスポンスの一例です。フォーマットはJSON形式となります。
{ "sub":"qgjw87yg3djw", "name":"アヤコ", "given_name":"彩子", "family_name":"佐藤", "nickname":"アヤコ", "preferred_username" :"アヤコ", "profile" : "http://mixi.jp/redirect_friend_api.pl?puid=qgjw87yg3djw&client_id=xxxxx", "picture" : "http://mixi.jp/photo/user/rdqz7s6ew176q_2105834213.jpg", "gender":"female", "birthdate":"1980-04-10", "email":"ayako@example.com", "email_verified":true }