mixi Developer Center (ミクシィ デベロッパーセンター)

mixi Connect

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 ユーザのメールアドレス。ログインメールアドレスです。 email
email_verified メールアドレスが確認済かどうか。
ログインメールアドレスは確認済のため、値は必ずtrue(真)となります。
email

"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
}

このページの上部へ