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

Snapchat をアイデンティティプロバイダーとして設定する

Last updated on February 4, 2026

注釈:本資料はAI技術を用いて翻訳されています。

概要

このガイドは、認証されたSnapchatデベロッパーがSnapchatアカウントをAccelByte Gaming Services (AGS) に接続するのを支援することを目的としています。ここに記載されていないSnapchatサービス内の追加機能を設定する必要がある場合があります。Snapchatサービスの設定に関する完全な情報については、Snapchatの担当者に連絡し、Snapchatドキュメントを直接確認することをお勧めします。

important

このガイドは公開用であり、機密性のため限定的な情報が含まれています。まず完全な機密ガイドを参照することをお勧めします。機密ガイドのコピーをリクエストするには、AccelByteテクニカルプロデューサーにお問い合わせください。

目標

AccelByte Game SDKを使用してゲームのSnapchat認証方法を有効にします。

前提条件

  • Snapchat Developerアカウント。
  • Developer Accountの下の組織
  • Unreal Engineを使用する場合は、UEバージョン4.27または5.0をインストールします。
  • 認証を設定し、権限を管理するためのAccelByte Admin Portalアカウント。
  • Player PortalとLauncher用のPublisher Namespace、およびゲーム用のGame Namespace。
  • Player Portal。
  • 最新バージョンのAccelByte Game SDKがインポートされたUnityまたはUnrealゲームプロジェクト。
  • AGS Identity and Access Management (IAM) Clientsに関する知識。

Snapchat Kit Appの設定

Snap Kit Appの作成

Snapchat Developer Accountの下にSnap Kit Appを作成します。Snapchat's guide on Setting up your first app guideに従ってください。

Snap Login Kitのアクティベート

Snap Kit Appの下でSnap Login Kitをアクティベートし、OAuthのRedirect URIにドメインURL(例: https://prod.gamingservices.accelbyte.io)を入力します。詳細については、Snapchat's documentation on Login Kitを参照してください。

Snapchat用のゲーム内ログインの設定

これらの手順に従って、ゲームでSnapchatログインを設定します。これにより、プレイヤーはSnapchatアカウントを使用してゲームにサインインできるようになります。

  1. AGS Admin portalで、パブリッシャーnamespaceに移動します。

  2. サイドバーメニューで、Game Setup > 3rd Party Configuration > Auth & Account Linkingに移動します。

  3. Login Methodsページで、+ Add Newボタンをクリックします。

    AccelByte Admin Portal Login

  4. ログイン方法オプションのリストから、Snapchatを選択します。

    Snapchat

  5. Client IDにSnap Kit Client IDを、Client SecretにSnap Kit Client Secretを、Redirect URIにSnapchat Login Kit OAuth Redirect URIを入力します。

    Snapchat Create Configuration

  6. 詳細ページにリダイレクトされます。この時点でアクティベートするだけで使用できるようになります。

    Activate Snapchat

IAM Clientの作成

IAMクライアントは、ターゲットプラットフォームでリリースするゲームクライアントの表現です。

特定のSDKプラットフォーム(Xbox、Steam、Playstationなど)のゲーム用のIAM Clientをすでに持っている場合は、新しいIAM Clientを作成する必要はありません。Snapchatはゲームを構築するプラットフォームではないため、既存のIAM Clientを使用できます。IAM Clientsの詳細については、Manage access control for applicationsを参照してください。

ゲーム内ログイン手順

各ゲームエンジンの設定は異なります。利用可能なタブからゲームエンジンを選択してください。

Unrealゲーム内ログイン統合

AccelByte SDKを使用してSnapchat Gameをサインインに統合し、プレイヤーがSnapchat認証情報を使用してゲームにログインできるようにすることができます。

Unreal準備と設定

SnapchatはUE4の統合をサポートしていません。そのため、実装ではウェブログインを使用し、SnapChat AuthからログインコードをトークンとしてAccelByteにログインします。Snapchatアカウントは、デフォルトでヘッドレスアカウントとなるAccelByteアカウントにもリンクされます。

参照: https://docs.snap.com/snap-kit/login-kit/Tutorials/web

依存関係の追加

まず、AccelbyteUe4Sdkという公開依存関係モジュールを追加する必要があります。この依存関係は、Unreal Engine内でAccelByte SDKプラグインを使用するためにプロジェクトを統合するために必要です。

public ABThirdPartyLogin(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;

PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" , "AccelByteUe4Sdk", "Slate", "SlateCore" });

PrivateDependencyModuleNames.AddRange(new string[] { "Json", "HTTP" });

}

<YourProject>.Target.cs<YourProjectEditor>.Target.cs内にAccelbyteUe4Sdkを追加します

public ABThirdPartyLoginTarget( TargetInfo Target) : base(Target)
{
Type = TargetType.Game;
DefaultBuildSettings = BuildSettingsVersion.V2;
ExtraModuleNames.AddRange( new string[] { "ABThirdPartyLogin", "AccelByteUe4Sdk" } );
}
public ABThirdPartyLoginEditorTarget( TargetInfo Target) : base(Target)
{
Type = TargetType.Editor;
DefaultBuildSettings = BuildSettingsVersion.V2;
ExtraModuleNames.AddRange( new string[] { "ABThirdPartyLogin", "AccelByteUe4Sdk" } );
}

Snapchat用のUnreal Engineプロジェクト設定

DefaultEngine.iniファイル内に、DefaultEngine.iniにAccelbyte認証情報を追加してください

[/Script/AccelByteUe4Sdk.AccelByteSettings]
ClientId=<Your Client_Id>
ClientSecret=<Your Client_Secret>
Namespace=<Your Namespace>
PublisherNamespace=<Your Publisher Namespace>
RedirectURI="http://127.0.0.1"
BaseUrl="https://prod.gamingservices.accelbyte.io"
IamServerUrl="https://prod.gamingservices.accelbyte.io/iam"
PlatformServerUrl="https://prod.gamingservices.accelbyte.io/platform"

[SnapChatConfig]
SnapChatClientId=<SnapChatClientId>

Unrealサンプルコード実装

次のステップでは、以下のサンプルコードを使用してゲームのSnapchat認証方法を実装する方法を示します。

  1. BluePrintでWebBrowserアイテムをログインコンテナとして作成します。

  2. Login Snapchat URLをロードします: https://accounts.snapchat.com/accounts/oauth2/auth

    そして認証パラメータを追加します:

    1. redirect_uri: ログインが完了したときのRedirectURL。リダイレクトはゲームに戻るため、BaseURL(ApiClient->Settings->BaseUrl)で値を入力します。また、Snapchat開発者ポータルのRedirect Uri設定にBaseUrl値を入れてホワイトリストに登録します。
    2. response_type: 値を**"code"**にします。
    3. scope: 権限スコープで値を入れます \
https://auth.snapchat.com/oauth2/api/user.display_nameユーザーのSnapchat表示名へのアクセスを許可
https://auth.snapchat.com/oauth2/api/user.bitmoji.avatarユーザーのBitmojiアバターへのアクセスを許可(ユーザーが切り替え可能)
https://auth.snapchat.com/oauth2/api/user.external_idアプリケーションにユーザーをオンボードするために使用できるユーザーの外部IDへのアクセスを許可
注記

スニペットで使用されるAccelByteOnlineSubsystemPtrを取得するには、このガイドに従ってください。


auto ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient(TEXT("YOUR_KEY"));
auto UserApi = ApiClient->GetUserApi().Pin();

void UAccelByteAuth::SnapChatLogin()
{
FString SnapChatClientId;
GConfig->GetString(TEXT("SnapChatConfig"), TEXT("SnapChatClientId"), SnapChatClientId, GEngineIni);
FString RedirectUri = ApiClient->Settings->BaseUrl;
FString Scope = TEXT("https://auth.snapchat.com/oauth2/api/user.display_name https://auth.snapchat.com/oauth2/api/user.bitmoji.avatar https://auth.snapchat.com/oauth2/api/user.external_id");

FString Url = FString::Printf(TEXT("https://accounts.snapchat.com/accounts/oauth2/auth?client_id=%s&redirect_uri=%s&response_type=%s&scope=%s"),
*FGenericPlatformHttp::UrlEncode(SnapChatClientId),
*FGenericPlatformHttp::UrlEncode(RedirectUri),
TEXT("code"),
*FGenericPlatformHttp::UrlEncode(Scope));

WBrowser_SnapChatAuth->LoadURL(Url);
WBrowser_SnapChatAuth->OnUrlChanged.AddUniqueDynamic(this, &UAccelByteAuth::AccelByteLoginWithSnapChat);
}

void UAccelByteAuth::AccelByteLoginWithSnapChat(const FText& NewUrl)
{
FString Url = NewUrl.ToString();
FString RedirectUri = ApiClient->Settings->BaseUrl;
FString LoginCode = TEXT("");

if (Url.Contains(RedirectUri))
{
LoginCode = FGenericPlatformHttp::GetUrlParameter(Url, TEXT("code")).GetValue();
}

if (!LoginCode.IsEmpty())
{
UserApi->LoginWithOtherPlatform(EAccelBytePlatformType::SnapChat, LoginCode, FVoidHandler::CreateWeakLambda(this, [this]()
{
// Handle Success Login
}),
FCustomErrorHandler::CreateWeakLambda(this, [](int32 ErrorCode, const FString& ErrorMessage, const FJsonObject& ErrorJson)
{
// Handle Error Login
}));

// Close Login Page (Hide WebBrowser)
}
}
注記

platform_token(Snapchat認証用)はAuth Codeです

このサンプルコードをプロジェクトに追加した後、プロジェクトをコンパイル、ビルド、実行します。以上です!

サンプルコードのテスト

以下の画像は、Snapchatアカウントを使用してテストアプリに正常にログインした様子を示しています。 Unreal Code Testing