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

mixi Connect

mixi Connect » mixi Graph API » mixi OpenID から mixi Graph API へのユーザ移行

mixi OpenID から mixi Graph API へのユーザ移行

mixi OpenID が提供しているユーザIDを mixi Graph API から取得することにより、mixi OpenID を利用していた外部サービスはユーザを mixi Graph API に移行できます。

mixi OpenID は OpenID Authentication 2.0、 mixi Graph API は OpenID Connect Core 1.0 という仕様にそれぞれ準拠しており、ここで説明するユーザ移行については OpenID 2.0 to OpenID Connect Migration 1.0 という仕様に準拠しています。

OpenID 2.0 to OpenID Connect Migration 1.0 http://openid.net/specs/openid-connect-migration-1_0.html

事前に必要なもの

mixi Graph API を利用するためには、サービスの登録が必要となります。

サービスの登録については「サービス管理」をご参照ください。

mixi Graph API の認証認可手順については「認証認可手順(新方式)」をご参照ください。

ユーザー移行の方法

Step 1. 認可要求に mixi OpenID のユーザIDを要求するスコープを指定する

認可要求についての詳細は 「認証認可手順(新方式)」の「認可とAuthorization Codeの入手」 をご参照ください。

mixi Graph API では、認可を要求する際に利用したいAPI等に対応するスコープの値を指定します。

mixi OpenID のユーザIDを要求するためには、このスコープの値に "openid" と "openid2" の値を含む必要があります。

全体のURLは以下のようになるでしょう。

GET https://mixi.jp/connect_authorize.pl?client_id=908ed4da74f885a2ab&response_type=code&scope=openid%20openid2&server_state=WErVieau7umEw1k2aRYOqXL-syCeRzZ3M4UBClLeZ2k

外部サービスはこのURLにユーザを送ることで mixi OpenID のユーザIDへのアクセスを要求できます。

Step 2. IDトークンからmixi OpenIDのユーザIDを取得する

上記のスコープを指定することにより、アクセストークン、リフレッシュトークンとともにIDトークンを入手できます。

トークンの入手についての詳細は 「認証認可手順(新方式)」の「リフレッシュトークン、アクセストークンの入手」 、IDトークンについての詳細は「認証認可手順(新方式)」の「ID Tokenについて」 をご参照ください。

入手したIDトークンをデコードすることで、mixi OpenID のユーザIDを取得できます。

{
 "exp":1383290635,
 "server_state":"WErVieau7umEw1k2aRYOqXL-syCeRzZ3M4UBClLeZ2k",
 "sub":"qgjw87yg3djw",
 "iat":1383287035,
 "aud":"908ed4da74f885a2ab",
 "iss":"https://api.mixi-platform.com",
 "openid2_id":"https://id.mixi.jp/user_id"
}

sub パラメータの値が mixi Graph API のユーザID、openid2_id パラメータの値が mixi OpenID のユーザIDとなります。

Step 3. 外部サービス内のユーザIDに mixi Graph API のユーザIDを紐付ける

mixi OpenID を利用していた外部サービスは、取得した mixi OpenID のユーザIDを用いて既存のユーザーを特定できます。

しかし、mixi Graph API にて提供されている各APIでは、 mixi Graph API のユーザIDが使われています。

これらのAPIとの親和性を考慮し、外部サービスは mixi OpenID のユーザIDと mixi Graph API のユーザIDを紐づけることをお勧めします。

このページの上部へ