Codeフローのサンプルコードの説明をします。SDKを任意の場所にダウンロードして解凍してください。解凍後、YConnectSDK.xcodeprojをアプリケーションのプロジェクトに追加してください。詳細な手順を下記に示します。XCodeでアプリケーションのプロジェクトを開いてください。"を選択してください。SDK内のYConnectSDK.xcodeprojを選択し、"Add"してください。SDKを利用するためにプロジェクトの設定を行います。Libraries"の"+"ボタンを押してください。ダイアログが表示されるので、WorkspaceからlibYConnectSDK.aを選択し、"Add"してください。SDK内のヘッダファイルをimportするために設定を行います。SDKのパスを追加します。最後にコールバックURLを設定します。Types"を展開してください。schemes"にはこのschemeはアプリケーションID登録時に発行されるカスタムURIスキーム「yj-xxxxx」を指定してください。identifier"と同じ値が推奨されています。カスタムURIスキームはアプリケーションの管理から変更可能です。Codeフローで必要なメソッドがすべて実装されています。YConnectExplicitクラスを使ってURLを生成し、アプリ内ブラウザタブであるSFAuthenticationSessionもしくはSFSafariViewControllerに同意画面を表示させます。サンプルコードはStoryboardを使用しています。シングルトンパターンのインスタンスを取得する。各パラメーターを設定する。パソコン版のテンプレートを表示するための定数です。スマートフォンブラウザー版のテンプレートを表示するための定数です。スマートフォンアプリケーション版のテンプレートを表示するための定数です。ユーザーの認証、認可のための定数です。同意画面非表示のための定数です。ユーザーの再認可のための定数です。ユーザーの再認証のための定数です。ユーザー識別子を取得するための定数です。姓名・生年・性別を取得するための定数です。メールアドレスと確認済みフラグを取得するための定数です。ユーザー登録住所情報を取得するための定数です。SFSafariViewController");}...実際の開発の際にはstate、nonceは固定の文字列ではなく独自の仕様でランダムな文字列を生成してデータベースなどに保存してください。stateはAuthorizationエンドポイントからのコールバックURL受取時に、nonceはIDトークンを復号時の検証に必要です。各パラメーター値の詳細についてはAuthorizationエンドポイントを参照してください。コールバックURLを受け取り、認可コードを抽出する同意後に返されるコールバックURLをAppDelegateで受け取り、認可コードなどを抽出します。コールバックURLのクエリパラメータに付加されたパラメーターを抽出する。認可コードを取得する。getAuthorizationCode];...Tokenエンドポイントにリクエストしてアクセストークンを取得する取得した認可コードを用いてアクセストークンを取得します。Tokenエンドポイントにリクエストする。アクセストークンを取得する。アクセストークンの有効期限を取得する。リフレッシュトークンを取得する。IDトークンを取得する。getIdToken];...CheckTokenエンドポイントにリクエストしてユーザー識別子を取得するオプションでレスポンスタイプにIDトークンを指定した場合、IDトークンの暗号化された文字列が返されます。この文字列をCheckTokenエンドポイントで復号し、ユーザー識別子やIDトークンの発行元などの情報を取得します。CheckTokenエンドポイントにリクエストする。復号されたIDトークンをオブジェクトとして取得する。getIdTokenObject];...復号されたIDトークンはオブジェクトとして返されます。各パラメーターはIDトークンオブジェクトのプロパティーに保持されているので、必要に応じて取り出して利用してください。APIにリクエストしてユーザー識別子を取得するアクセストークンを用いてユーザー識別子などを取得します。APIにリクエストする。UserInfoオブジェクトを取得する。getUserInfoObject];...userInfoObjectはオブジェクトとして返されます。各パラメーターはUserInfoオブジェクトのプロパティーに保持されているので、必要に応じて取り出して利用してください。アクセストークンを更新するリフレッシュトークンをつかって有効期限切れのアクセストークンを更新します。アクセストークンを更新する。getAccessTokenExpiration];...}...アクセストークンなどの保存についてアクセストークン、IDトークン、UserInfo情報の保存は、悪意のある外部アプリケーションから盗みとられないように注意が必要です。取得したトークンやユーザー情報を保存する場合には、適宜暗号化や難読化し外部から読み取られないようにしてください。iOS(Implicitフロー)iOSのImplicitフローのサンプルコードの説明をします。SDKを任意の場所にダウンロードして解凍してください。解凍後、YConnectSDK.xcodeprojをアプリケーションのプロジェクトに追加してください。詳細な手順を下記に示します。XCodeでアプリケーションのプロジェクトを開いてください。"を選択してください。SDK内のYConnectSDK.xcodeprojを選択し、"Add"してください。SDKを利用するためにプロジェクトの設定を行います。Libraries"の"+"ボタンを押してください。ダイアログが表示されるので、WorkspaceからlibYConnectSDK.aを選択し、"Add"してください。SDK内のヘッダファイルをimportするために設定を行います。SDKのパスを追加します。最後にコールバックURLを設定します。Types"を展開してください。schemes"にはこのschemeはアプリケーションID登録時に発行されるカスタムURIスキーム「yj-xxxxx」を指定してください。identifier"と同じ値が推奨されています。カスタムURIスキームはアプリケーションの管理から変更可能です。Authorizationエンドポイントにリクエストして同意画面を表示するYConnectImplicitクラスにはImplicitフローで必要なメソッドがすべて実装されています。YConnectImplicitクラスを使ってURLを生成し、アプリ内ブラウザタブであるSFAuthenticationSessionもしくはSFSafariViewControllerに同意画面を表示させます。シングルトンパターンのインスタンスを取得する。各パラメーターを設定する。パソコン版のテンプレートを表示するための定数です。スマートフォンブラウザー版のテンプレートを表示するための定数です。スマートフォンアプリケーション版のテンプレートを表示するための定数です。ユーザーの認証、認可のための定数です。同意画面非表示のための定数です。ユーザーの再認可のための定数です。ユーザーの再認証のための定数です。ユーザー識別子を取得するための定数です。姓名・生年・性別を取得するための定数です。メールアドレスと確認済みフラグを取得するための定数です。ユーザー登録住所情報を取得するための定数です。SFSafariViewController");}...実際の開発の際にはstate、nonceは固定の文字列ではなく独自の仕様でランダムな文字列を生成してデータベースなどに保存してください。stateはAuthorizationエンドポイントからのコールバックURL受取時に、nonceはIDトークンを復号時の検証に必要です。各パラメーター値の詳細についてはAuthorizationエンドポイントを参照してください。コールバックURLを受け取り、アクセストークンを抽出する同意後に返されるコールバックURLをAppDelegateで受け取り、アクセストークンなどを抽出します。コールバックURLのフラグメントに付加されたパラメーターを抽出する。アクセストークンを取得する。アクセストークンの有効期限を取得する。IDトークンを取得する。getIdToken];...CheckTokenエンドポイントにリクエストしてユーザー識別子を取得するオプションでレスポンスタイプにIDトークンを指定した場合、IDトークンの暗号化された文字列が返されます。この文字列をCheckTokenエンドポイントで復号し、ユーザー識別子やIDトークンの発行元などの情報を取得します。CheckTokenエンドポイントにリクエストする。復号されたIDトークンをオブジェクトとして取得する。getIdTokenObject];...復号されたIDトークンはオブジェクトとして返されます。各パラメーターはIDトークンオブジェクトのプロパティーに保持されているので、必要に応じて取り出して利用してください。APIにリクエストしてユーザー識別子を取得するアクセストークンを用いてユーザー識別子などを取得します。APIにリクエストする。UserInfoオブジェクトを取得する。getUserInfoObject];...userInfoObjectはオブジェクトとして返されます。各パラメーターはUserInfoオブジェクトのプロパティーに保持されているので、必要に応じて取り出して利用してください。アクセストークンの有効期限が切れた場合は、再度AuthorizationエンドポイントにリクエストするImplicitフローでアクセストークンの有効期限が切れた場合は、もう一度Authorizationエンドポイントにリクエストして、同意の処理を行ってください。openURL:url];}...アクセストークンなどの保存についてアクセストークン、IDトークン、UserInfo情報の保存は、悪意のある外部アプリケーションから盗みとられないように注意が必要です。取得したトークンやユーザー情報を保存する場合には、適宜暗号化や難読化し外部から読み取られないようにしてください。