メインコンテンツまでスキップ

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_tokenstringアクセストークン
refresh_tokenstringリフレッシュトークン
signing_keystring署名用証明書のキー名。X.509 公開鍵証明書の作成 で作成した証明書のキー名を指定します。指定しない場合は、有効期限が一番古いものが利用されます

Apple

パラメータ名必須説明
id_tokenstringID トークン
signing_keystring署名用証明書のキー名。X.509 公開鍵証明書の作成 で作成した証明書のキー名を指定します。指定しない場合は、有効期限が一番古いものが利用されます

Yahoo! JAPAN

パラメータ名必須説明
access_tokenstringアクセストークン
refresh_tokenstringリフレッシュトークン
id_tokenstringID トークン
noncestringID トークン検証用の nonce 値
expires_innumberアクセストークンの有効期限
signing_keystring署名用証明書のキー名。X.509 公開鍵証明書の作成 で作成した証明書のキー名を指定します。指定しない場合は、有効期限が一番古いものが利用されます

Google

パラメータ名必須説明
codestring認可コード
refresh_tokenstringリフレッシュトークン
signing_keystring署名用証明書のキー名。X.509 公開鍵証明書の作成 で作成した証明書のキー名を指定します。指定しない場合は、有効期限が一番古いものが利用されます

Facebook

パラメータ名必須説明
access_tokenstringアクセストークン
refresh_tokenstringリフレッシュトークン
signing_keystring署名用証明書のキー名。X.509 公開鍵証明書の作成 で作成した証明書のキー名を指定します。指定しない場合は、有効期限が一番古いものが利用されます

Twitter

パラメータ名必須説明
access_tokenstringアクセストークン
access_token_secretstringアクセスシークレット
signing_keystring署名用証明書のキー名。X.509 公開鍵証明書の作成 で作成した証明書のキー名を指定します。指定しない場合は、有効期限が一番古いものが利用されます

レスポンス

基本的に JSON 形式で返します。

ソーシャルPLUS 側の認証処理が正しく完了した場合は、公開鍵証明書で署名された JWT(JSON Web Token)を応答します。

「アカウントID」、「サービスID」、または「ログインプロバイダ名」に誤りがあった場合は、HTTP ステータス 404 Not Found を応答し、JSON 形式のデータをレスポンスボディとして返しません。

アクセストークンの投入に成功した場合

認証に成功した場合は、ステータスコード 200 OK とともに、以下の JSON 形式のレスポンスボディを返します。

パラメータ名Nullable説明
statusstringリクエストが成功したかどうか
tokenstring認証に関する情報を含む JWT
レスポンス例
{
"status": "ok",
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJmZ..."
}

JWT ヘッダ

JWT ヘッダは固定です。

JWT ヘッダ
{
"typ": "JWT",
"alg": "RS256"
}

JWT クレームセット

デコード済みの JWT クレームセット(ペイロード)は以下の通りです。

キー桁数説明
issstring14"feedforce Inc." 固定
audstring65アカウントID とサービスID を / で結合した値。例)example/demosite
substring40ソーシャルPLUS ID
iatnumberJWT の発行時刻。UNIX time 値
expnumberJWT の有効期限。UNIX time 値。発行日時より 600 秒を有効期限として設定します
socpobjectソーシャルPLUS 固有データ

キー socp には以下のデータを含みます。

キー桁数説明
tokenstring40ワンタイムトークン
JWT クレームセット(ペイロード)例
{
"iss": "feedforce Inc.",
"aud": "ff/devapp",
"sub": "1ff47f96fb3b859730e41fac76ad3e8a809d9c56",
"iat": 1441351412,
"exp": 1441352012,
"socp": { "token": "cbd39ba566454efd4a8fd98e5def28aa5bdf0434" }
}

エラー発生時

エラーが発生した場合、ステータスコード 400 Bad Request とともに、以下の JSON 形式のレスポンスボディを返します。

エラー時 レスポンス例
{
"status": "failed",
"message": "Authorization failed."
}

発生するエラーは以下の通りです。

statusmessage説明
failedAuthorization failed.アクセストークンが正しくないか、他のユーザに紐付いたアクセストークンです
failedSpecified 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..."
}'