当社SDKは OIDCインプリシットフロー を利用したソーシャルサインインに対応しています。

現在サポートされているOIDCプロバイダーは以下の通りです:

ご確認ください。上記リンクの手順に従ってBuilderでOIDCプロバイダーの設定は済んでいますか?Resourcesフォルダ内の SequenceConfig スクリプタブルオブジェクトにクライアントIDを追加しましたか?

ユーザーがサインインに成功すると、idTokenがディープリンク経由でアプリケーションに返されます。 ディープリンクを有効にするには、アプリケーション用のカスタムURLスキームを登録する必要があります。これにはプラットフォームごとに特有の設定が必要です。

エディター

エディターでソーシャルサインインを動作させるには、ローカルマシン上で簡単なサーバーを立ち上げる必要があります。サンプル実装はこちらをご用意しています。

このサンプルサーバーをデプロイするには、以下の手順を実行してください。

  1. Goをダウンロードしてインストール:https://go.dev/dl/
  2. ターミナルまたはコマンドプロンプトを開き、次のコマンドでインストールを確認します
go version
  1. Goプロジェクト用のディレクトリと main.go ファイルを作成します
mkdir myUnityServer
cd myUnityServer
touch main.go
  1. gist の内容を main.go にコピーして貼り付けます
  2. Goモジュールを作成してプロジェクトを初期化します
go mod init myUnityServer
  1. サーバーを起動します
go run main.go
  1. ターミナルやコマンドプロンプトに Server listening on port 8080 と表示されれば成功です

サーバーを別の場所(別ポートやパブリックサーバーなど)にデプロイする場合は、サインイン処理を開始する前にコード内の OpenIdAuthenticator.RedirectUrl を変更してください

OpenIdAuthenticator.InjectRedirectUrl("the url for your deployed server");

注意:デスクトッププラットフォーム用のソーシャルサインインプロバイダーには、http://localhost:8080/(またはご自身のサーバーURL)を SequenceConfigStandalone Platforms のリダイレクトURLとしてホワイトリストに登録してください

iOS

Appleでサインイン

このSDKは、人気の apple-signin-unity パッケージ を利用したネイティブのAppleサインインに対応しています。ご利用には XCodeでの Sign in with Apple 機能の有効化 が必要です。Package Manager > Samples から Setup スクリプトをインポート済み、または SignInWithApplePostprocessor.csEditor サブフォルダにある場合は、この機能がXCodeビルドに自動的に追加されます。

なお、この機能は Personal Teams ではサポートされていませんのでご注意ください。

その他のソーシャルプラットフォーム

その他のソーシャルプラットフォームにも標準で対応しています。SequenceConfig にクライアントIDを追加するだけでご利用いただけます。

MacOS

  1. Windows/Mac/Linux Player Settings ウィンドウを開きます(メニュー:Edit > Project Settings > Player Settings で Windows/Mac/Linux を選択)。
  2. Other Settings を選択し、下にスクロールして Mac Configuration を探します。
  3. Supported URL schemes セクションを展開し、サイズを1つ増やします。
  4. 新しく追加された Element N フィールドに、SequenceConfig で設定したURLスキームを入力します。

PC

追加の設定は必要ありません。

デスクトッププラットフォーム(およびAndroid)でGoogleなどのソーシャルサインイン用 web client の認証情報を設定する際は、https://api.sequence.app/oauth/callback を「Authorized redirect URIs」としてホワイトリスト登録してください。

Android

  1. Projectウィンドウで Assets > Plugins > Android に移動します。

a) 注意:Unity 2021.2以降ではこのパスがデフォルトで存在しません。Edit > Project Settings > Player からAndroid Publishing Settingsに進み、Buildセクションで Custom Main Manifest を有効にしてください。詳細は https://docs.unity3d.com/Manual/deep-linking-android.html をご参照ください。 2. まだ存在しない場合は新規ファイルを作成し、AndroidManifest.xml という名前を付けます。 3. 以下のXMLをファイルに貼り付けるか、既存のファイルがある場合はこのXMLの新しいキーを追加してください。 4. 必ず ‘sdk-powered-by-sequence’ を SequenceConfig で設定したURLスキームに置き換えてください

<?xml version="1.0" encoding="utf-8"?>
   <manifest
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
   >
     <application>
       <activity
         android:name="com.unity3d.player.UnityPlayerActivity"
         android:theme="@style/UnityThemeSelector"
       >
         <intent-filter>
           <action android:name="android.intent.action.MAIN" />
           <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
         <intent-filter>
           <action android:name="android.intent.action.VIEW" />
           <category android:name="android.intent.category.DEFAULT" />
           <category android:name="android.intent.category.BROWSABLE" />
           <data android:scheme="sdk-powered-by-sequence"/> <!-- substitute 'sdk-powered-by-sequence' with the Url Scheme you set in `SequenceConfig` -->
         </intent-filter>
       </activity>
     </application>
   </manifest>

b) 注意:Unity 2022の 2022.3.7f1 より前のバージョン、および2023の 2023.1.7f12023.2.0b32023.3.0a1 より前のバージョンには、Androidのディープリンクに関するバグがあります。代わりにこのXMLをご利用ください。

<?xml version="1.0" encoding="utf-8"?>
<manifest
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
>
    <application>
        <activity
                android:name="com.unity3d.player.UnityPlayerActivity"
                android:theme="@style/UnityThemeSelector"
                android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="sdk-powered-by-sequence"/> <!-- substitute 'sdk-powered-by-sequence' with the Url Scheme you set in `SequenceConfig` -->
            </intent-filter>
        </activity>
    </application>
</manifest>

つまり、最初の intent-filter の後に <meta-data android:name="unityplayer.UnityActivity" android:value="true" /> を追加してください。詳細は https://forum.unity.com/threads/deep-linking-in-unity-2022-the-app-is-restarted.1447300/ をご覧ください。

AndroidManifest と SequenceConfig の URL スキームはすべて小文字で記載してください。
Unity 6 をご利用の場合、AndroidManifest 内の UnityPlayerActivityUnityPlayerGameActivity に置き換える必要があるかもしれません。また、android:theme の設定も変更が必要な場合があります。弊社のテストでは「@style/BaseUnityGameActivityTheme」がうまく動作しています。

Web

Webプラットフォームでのソーシャルサインインは、WebGLTemplates/SequenceReact 配下の WebGLTemplate を通じてReactを利用しています。これはWebGLおよびWebGPUで動作確認済みです。UnityでWebGPUを有効にする方法はこちらのフォーラム投稿をご覧ください。

ご注意ください:デフォルトの SequenceReact WebGLTemplate でWebプラットフォーム上でサポートされているOIDCプロバイダーは現在Googleのみです。ただし、APIがサポートする他のOIDCプロバイダーにも対応できるよう、自由に拡張していただけます。

初回セットアップ

この WebGLTemplates フォルダを Assets 配下にドラッグしてください(すでに WebGLTemplates フォルダがある場合は、SequenceReact テンプレートだけをその中にドラッグしても構いません)。最終的に Assets/WebGLTemplates/SequenceReact となるように配置してください。

WebGLTemplates フォルダは必ず Assets/WebGLTemplates に配置してください。Plugins フォルダと同様に、正確な場所にないと Unity が認識しませんのでご注意ください!

SequenceReact テンプレートを追加したら、Unity エディターを再起動して新しいテンプレートが認識されるようにしてください。

その後、Project Settings > Player Settings > Resolution and Presentation からテンプレートを選択できます。

ビルド

一度セットアップが完了すれば、Unity プロジェクトを Web プラットフォーム向けにビルドする際、React プロジェクトの一部としてビルドされます。

  1. 新しく作成されたビルドのルートディレクトリでコマンドラインを開きます。
  2. まだインストールしていない場合は、pnpm をインストール してください。
  3. pnpm install で依存関係をインストールします。
  4. pnpm dev でプロジェクトをローカルホスト(デフォルトはポート4444、SequenceReact/package.json で変更可能)で起動します。
  5. http://localhost:4444 を開いてください。
WebGL アプリをビルドする際、Compression Format(例:Gzip や Brotli)を使用している場合は、Player Settings > Publishing SettingsDecompression Fallback を有効にすることを推奨します。WebGL のデプロイについて詳しくは、こちらのドキュメント をご覧ください。
例えば Google でソーシャルサインインの認証情報を設定する場合は、http://localhost:4444 と、ゲームを最終的にホストする URL を「Authorized Javascript origins」としてホワイトリストに追加してください。
新しいウォレットが作成された際に受け取れるよう、SequenceWallet.OnWalletCreated イベントの購読をお忘れなく!