Injection API
Injection API は、ネイティブアプリの端末アプリケーションから呼び出すことを想定しています。
これ以外のソーシャルPLUS Web API はサーバーサイドで利用することを想定され、秘匿情報(API Key)を必要とします。Web API は端末アプリケーションから利用しないでください。
詳しくは、ネイティブアプリ連携のシーケンス図 をご確認ください。
各ログインプロバイダのネイティブアプリ SDK を用いてログインを行い、ログインプロバイダが発行するアクセストークン(ユーザアクセストークン)を取得できます。取得したアクセストークンを端末アプリケーションより直接ソーシャルPLUS へ送信することで、そのアクセストークンを用いてソーシャルPLUS 側の認証処理を行います。
POST /{アカウントID}/{サービスID}/{ログインプロバイダ名}/inject
アクセストークンに対応するソーシャルアカウントに紐付いた「ソーシャルPLUS ID」が存在しない場合は、新しいソーシャルPLUS ID を採番します。
リクエストパラメータ
パスに指定するパラメータは以下のとおりです。
パラメータ名 | 取得方法 |
---|---|
アカウントID | お客様ごとに発行する アカウントID |
サービスID | ソーシャルログインマネージャーで作成したサービスごとのサービスID |
ログインプロバイダ名 | ログインプロバイダ名一覧 を参照してください |
リクエストメソッドは POST
で、リクエストボディは JSON 形式です。
LINE
パラメータ名 | 型 | 必須 | 説明 |
---|---|---|---|
access_token | string | ○ | アクセストークン |
refresh_token | string | リフレッシュトークン | |
signing_key | string | 署名用証明書のキー名。X.509 公開鍵証明書の作成 で作成した証明書のキー名を指定します。指定しない場合は、有効期限が一番古いものが利用されます |
Apple
パラメータ名 | 型 | 必須 | 説明 |
---|---|---|---|
id_token | string | ○ | ID トークン |
signing_key | string | 署名用証明書のキー名。X.509 公開鍵証明書の作成 で作成した証明書のキー名を指定します。指定しない場合は、有効期限が一番古いものが利用されます |
Yahoo! JAPAN
パラメータ名 | 型 | 必須 | 説明 |
---|---|---|---|
access_token | string | ○ | アクセストークン |
refresh_token | string | リフレッシュトークン | |
id_token | string | ○ | ID トークン |
nonce | string | ID トークン検証用の nonce 値 | |
expires_in | number | アクセストークンの有効期限 | |
signing_key | string | 署名用証明書のキー名。X.509 公開鍵証明書の作成 で作成した証明書のキー名を指定します。指定しない場合は、有効期限が一番古いものが利用されます |
Google
パラメータ名 | 型 | 必須 | 説明 |
---|---|---|---|
code | string | ○ | 認可コード |
refresh_token | string | リフレッシュトークン | |
signing_key | string | 署名用証明書のキー名。X.509 公開鍵証明書の作成 で作成した証明書のキー名を指定します。指定しない場合は、有効期限が一番古いものが利用されます |
Facebook
パラメータ名 | 型 | 必須 | 説明 |
---|---|---|---|
access_token | string | ○ | アクセストークン |
refresh_token | string | リフレッシュトークン | |
signing_key | string | 署名用証明書のキー名。X.509 公開鍵証明書の作成 で作成した証明書のキー名を指定します。指定しない場合は、有効期限が一番古いものが利用されます |
Twitter
パラメータ名 | 型 | 必須 | 説明 |
---|---|---|---|
access_token | string | ○ | アクセストークン |
access_token_secret | string | ○ | アクセスシークレット |
signing_key | string | 署名用証明書のキー名。X.509 公開鍵証明書の作成 で作成した証明書のキー名を指定します。指定しない場合は、有効期限が一番古いものが利用されます |
レスポンス
基本的に JSON 形式で返します。
ソーシャルPLUS 側の認証処理が正しく完了した場合は、公開鍵証明書で署名された JWT(JSON Web Token)を応答します。
「アカウントID」、「サービスID」、または「ログインプロバイダ名」に誤りがあった場合は、HTTP ステータス 404 Not Found
を応答し、JSON 形式のデータをレスポンスボディとして返しません。
アクセストークンの投入に成功した場合
認証に成功した場合は、ステータスコード 200 OK
とともに、以下の JSON 形式のレスポンスボディを返します。
パラメータ名 | 型 | Nullable | 説明 |
---|---|---|---|
status | string | リクエストが成功したかどうか | |
token | string | 認証に関する情報を含む JWT |
{
"status": "ok",
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJmZ..."
}
JWT ヘッダ
JWT ヘッダは固定です。
{
"typ": "JWT",
"alg": "RS256"
}
JWT クレームセット
デコード済みの JWT クレームセット(ペイロード)は以下の通りです。
キー | 型 | 桁数 | 説明 |
---|---|---|---|
iss | string | 14 | "feedforce Inc." 固定 |
aud | string | 65 | アカウントID とサービスID を / で結合した値。例)example/demosite |
sub | string | 40 | ソーシャルPLUS ID |
iat | number | JWT の発行時刻。UNIX time 値 | |
exp | number | JWT の有効期限。UNIX time 値。発行日時より 600 秒を有効期限として設定します | |
socp | object | ソーシャルPLUS 固有データ |
キー socp
には以下のデータを含みます。
キー | 型 | 桁数 | 説明 |
---|---|---|---|
token | string | 40 | ワンタイムトークン |
{
"iss": "feedforce Inc.",
"aud": "ff/devapp",
"sub": "1ff47f96fb3b859730e41fac76ad3e8a809d9c56",
"iat": 1441351412,
"exp": 1441352012,
"socp": { "token": "cbd39ba566454efd4a8fd98e5def28aa5bdf0434" }
}
エラー発生時
エラーが発生した場合、ステータスコード 400 Bad Request
とともに、以下の JSON 形式のレスポンスボディを返します。
{
"status": "failed",
"message": "Authorization failed."
}
発生するエラーは以下の通りです。
status | message | 説明 |
---|---|---|
failed | Authorization failed. | アクセストークンが正しくないか、他のユーザに紐付いたアクセストークンです |
failed | Specified signing key not found. | 指定された名前の証明書が存在しません |
実行サンプル
curl -L -X POST https://api.socialplus.jp/example/demosite/line/inject \
-H 'Content-Type: application/json; charset=utf-8' \
-H 'Accept: application/json' \
--data-raw '{
"access_token": "ZXJYJy0pWoKQPwD70dUvOL2cBs..."
}'