本文将介绍 验证与好友(Auth and Friends) 示例项目。该项目用到了 Epic在线服务(EOS)SDK。
身份验证和好友示例使用 Epic账户服务 进行用户身份验证。你将需要使用与有效应用程序对应的客户端凭证来初始化EOS SDK。有关设置应用程序的信息,请查阅开发人员门户文档。此示例演示的功能可以与任何支持的身份提供程序一起使用。
源代码和项目
你可以在 EOSSDK/Samples/AuthAndFriends/
目录中找到身份验证和好友项目,该目录包含以下子目录:
子目录 | 内容 |
---|---|
/Bin/ | 你将在其中找到游戏可执行文件的输出位置。构建后可执行文件出现的确切子目录视你的配置和平台而定。 |
/cmake/ | 在Mac和Linux上使用CMake进行构建的助手文件。 |
/Intermediate/ | 中间构建文件。 |
/Source/ | 项目源代码。 |
你还可以在 EOSSDK/Samples/Shared/
目录中找到某些共享的示例文件。它们被分为以下子目录:
子目录 | 内容 |
---|---|
/Assets/ | 共享游戏运行时纹理和字体资产。 |
/External/ | 共享库。 |
/Source/ | 全部共享源代码。 |
Shared/Source/Core/
目录包含使用EOS SDK登录、验证用户身份和查询好友的示例代码。源目录还包含用于管理游戏本身的代码。
构建示例
Windows DirectX
要编译和构建身份验证和好友示例,请使用Microsoft Visual Studio打开 Samples.sln
,并为目标平台(Win32 或 Win64)构建所需配置(Debug_DX 或 Release_DX)。
成功构建之后,/Bin/
目录将根据你的配置和目标平台,在子目录中包含可执行文件(AuthAndFriends.exe
)。子目录还将包含数据资产和SDK二进制文件的副本。
Windows SDL
要编译和构建身份验证和好友示例,请使用Microsoft Visual Studio 2017打开解决方案 Samples.sln
,并为目标平台(Win32 或 Win64)构建所需配置(Debug_SDL 或 Release_SDL)。
成功构建之后,/Bin/
目录将根据你的配置和目标平台在子目录中包含可执行文件(AuthAndFriends.exe
)。子目录还将包含数据资产和SDK二进制文件的副本。
Mac OSX
要在Mac上构建,你将需要安装以下依赖项:
- SDL2
- SDL2_ttf
- GLEW
- cmake
- gcc(通过Xcode的命令行工具)
要编译并构建身份验证和好友示例,你可以使用 Build.sh
或 Install.sh
。
-
仅适用于本地用户:通过终端运行
Build.sh
或Build.command
,生成示例项目,然后仅打包最小内容,在示例目录(/Build/AuthAndFriends.app)中本地运行。 -
在终端运行
Install.sh
或Install.command
, 将依赖项(例如 EOS SDK 动态库、SDL2 库等)与示例应用的程序包(/Install/AuthAndFriends.app)打包在一起,这样就可以将它移到其他地方并仍能运行。
要运行AuthAndFriends示例,请在终端上执行 Run.command
或 Run.sh
。
Linux
要在Linux上构建,你将需要安装以下依赖项:
- SDL2(运行时+头文件)
- SDL2_ttf(运行时+头文件)
- GLEW(运行时+头文件)
- cmake
- gcc/g++
要编译并构建身份验证和好友示例,请在终端上执行 Install.sh
。
成功构建后,/Install/
目录将包含可执行文件(AuthAndFriends
)。子目录还将包含数据资产和makefile构建文件的副本。
要运行“身份验证与好友”示例,请在终端上执行 Run.sh
。
使用Steam API进行身份验证
要使用Steam External Auth支持编译和构建身份验证和好友示例,请使用Microsoft Visual Studio打开 Samples.sln
,并构建目标平台(Win32 或 Win64)所需配置(Debug_DX_Steam、Release_DX_Steam、Debug_SDL_Steam 或 Release_SDL_Steam)。
该示例引用了Steam SDK中的文件,可将这些文件下载并提取到示例共享文件夹中(如下所示)。public
文件夹中含有Steam包含文件,而redistributable_bin
文件夹则含有Steam LIB和DLL文件。
Samples.props
文件包含 SteamSDK
属性,该属性具有Steam SDK文件位于以下位置的默认路径:..\Shared\External\SteamSDK
。
如果你想要从其他位置引用Steam SDK文件,请更改此路径。
为了进行测试,请在AuthAndFriends项目根文件夹中创建 steam_appid.txt
(如下所示),并将你的Steam App ID添加到该文件中。该文件将与所需的Steam DLL文件预构建一起复制。
成功构建之后,/Bin/
目录将根据你的配置和目标平台,在子目录中包含可执行文件(AuthAndFriends.exe
)。子目录还将包含数据资产、SDK二进制文件和Steam DLL文件的副本。
要运行该示例,你将需要运行Steam客户端。
该示例将在启动时尝试使用Steam会话票证(Steam Session Ticket)登录。如果你的 账户 尚未与Steam关联,你将转到账户门户登录,身份验证将继续,然后你将登录。
探索示例
如果你想浏览示例,请继续阅读以便了解可用的命令行参数、控制台命令和功能。
命令行参数
身份验证和好友示例支持以下可选命令行参数:
命令行参数 | 用途 | 说明 |
---|---|---|
userid | -userid <string> | 用户ID框将用<userid>文本填充,点击“登录(LOGIN)”按钮(或通过自动登录过程操作)时,将登录用户(由ID <string>指定)。此外,<userid>可以是电子邮件、显示名称或Facebook ID。 |
password | -password <string> | 密码框将用<password>文本填充,点击“登录(LOGIN)”按钮或通过自动登录过程操作时,用户(带密码<string>)将登录。 |
autologin | -autologin 1 | EOS SDK初始化后,在游戏开始时,具有指定“userid”和“密码”的用户将自动登录。 |
productid | -productid <string> | 创建EOS SDK平台选项时,将覆盖产品ID。有关默认值,请参阅 SampleConstants.ProductId 。 |
sandboxid | -sandboxId <string> | 创建EOS SDK平台选项时,将覆盖沙盒ID。有关默认值,请参阅 SampleConstants.SandboxId 。 |
deploymentId | -deploymentId <string> | 这让你可以在创建EOS SDK平台选项时覆盖部署ID。有关默认值,请参阅 SampleConstants.DeploymentId 。 |
clientid | -clientid <string> | 这让你可以在创建EOS SDK平台选项时覆盖客户端凭证ID。同样,有关默认值,请参阅 SampleConstants.ClientCredentialsId 。 |
clientsecret | clientsecret <string> | 这让你可以在创建EOS SDK平台选项时覆盖客户端凭证密钥。同样,有关默认值,请参阅 SampleConstants.ClientCredentialsSecret 。 |
fullscreen | -fullscreen 1 | 如果将其添加到命令行,则游戏将以全屏模式启动(默认为窗口模式)。 |
logfile | -logfile <string> | 调试输出日志将写出到<string>指定的文件名。此外,默认的调试输出日志文件是“DebugOuput.log”,并且与解决方案文件保存在同一文件夹中。 |
devhost | -devhost <string> | “设备身份验证(Dev Auth)”登录选项中的“主机”端口框将包含<string>参数。 |
devcred | -devcred <string> | “设备身份验证(Dev Auth)”登录选项中的“凭证”框将包含<string>参数。 |
控制台命令
身份验证和好友示例支持以下控制台命令,你可以在游戏中输入这些命令:
控制台命令 | 用途 | 说明 |
---|---|---|
TEST | 测试 | 将测试消息打印到控制台。 |
CLEAR | 清除 | 清除控制台输出窗口中的所有文本行。 |
EXIT | 退出 | 退出并关闭游戏。 |
LOGIN | 登录<USER_ID> <PASSWORD> | 尝试使用用户ID <USER_ID>和密码<PASSWORD>登录用户。 |
LOGOUT | 注销<USER_NAME> | 尝试注销名为<USER_NAME>的用户。 |
INVITE | 邀请<FRIEND_NAME> | 向显示名称为<FRIEND_NAME>的用户发送好友邀请。 |
PREV | 前一个 | 显示前一个已登录用户的信息(如果已登录多个用户)。 |
NEXT | 下一个 | 显示下一个已登录用户的信息(如果已登录多个用户)。 |
NEW | 新用户 | 显示允许以其他用户身份登录的登录对话框。 |
FRIENDS | 好友 | 打开好友覆层。 |
HELP | 帮助 | 将有关上述所有控制台命令的信息打印到控制台输出。 |
要添加更多控制台命令,请参阅 Game.cpp
中的 Game::CreateConsoleCommands
函数。
功能
简单框架具有少量功能,包括登录和注销功能、控制台窗口、好友列表和状态信息。
登录
下图显示的是带有几种登录方法的 好友(FRIENDS) 分段。要登录,请点击一种方法并输入相应的信息。然后,你可以点击 登录(LOG IN) 完成该过程。
登录面板,显示了支持的登录方法。
- 设备代码(Device Code): 使用包含Epic提供代码的URL登录。
- 设备身份验证(Dev Auth): 使用开发人员身份验证工具凭证登录。
- 账户门户(Account Portal): 通过关联你的Epic账户登录。
下图显示了成功登录后的用户显示名称(在右上角):
EOS支持从单个系统同时进行多个账户登录。在此示例中,你可以点击 新增(NEW) 按钮使用新账户登录。如果同时登录多个帐户,则可使用左右箭头在它们之间循环。
设备编码方法
设备编码方法将包含登录代码的URL发送到示例。你可以在示例的控制台日志中找到该URL。将其复制到 好友(FRIENDS) 分段后,你将登录。要取消此过程,请在弹出窗口中点击 取消(Cancel)。
设备身份验证方法
要使用设备身份验证方法登录,请输入运行开发人员身份验证工具的主机端口,并提供该工具提供的凭证。输入此信息后,点击 登录(LOG IN)。
账户门户方法
使用账户门户方法,你将转到Web浏览器中的Epic账户门户,你可以在其中使用Epic账户登录到你的应用程序。完成Web流程后,你将返回示例。
注销
要注销,请点击 注销(LOG OUT) 按钮。
控制台窗口
控制台记录各种EOS SDK操作中的相关调试输出。此外,控制台会显示以下函数中的调试输出:
函数 | 文本颜色 |
---|---|
FDebugLog::Log() | 白 |
FDebugLog::LogWarning() | 橙 |
FDebugLog::LogError() | 红 |
注: EOS SDK操作中的错误显示为红色文本,警告显示为橙色文本。
参见下图了解控制台窗口的更多相关信息:
控制台输出(1)记录相关调试信息。此外,还可输入控制台命令(2)或清除控制台输出中的所有时间(3)。最后,可通过点击、拖动并使用Ctrl+C组合键来选择并复制控制台输出中黄色高亮文本。如要选择控制台输出中的所有文本,使用Ctrl+A组合键。
注: 文本会复制到剪贴板。
好友列表
好友列表 是窗口的一个独立部分,其可显示好友及其状态、好友邀请,并可进行交互。须登录后才能使用好友列表(见下图)。
好友列表同时包含分为两种用途的文本字段。第一:其可以显示名称过滤好友。第二:可以输入用户显示名称并按回车键来搜索新好友。如输入的显示名称并非列表中的好友,系统会执行搜索操作,相应用户将以列表显示,并带有添加好友的选项(见下图):
按 + 按钮后,即发送好友邀请。受邀请的好友用户在接受或拒接邀请前会显示在好友列表中。
注: 传入的好友邀请会显示接受或拒绝邀请的按钮。
在线状态信息
用户接受邀请后,其便会成为好友,同时将显示更多信息。例如,可查看好友状态(如是否在线、离开还是离线)。此外,在线状态 信息还可显示正在游戏的好友,其名称旁边会显示绿色标签,表明应用程序名称和当前使用平台(见下图)。