跳到主要内容

Android

本文旨在介绍如何设置 Twitter 身份验证,让您的游戏可以使用 Player Network 登录鉴权服务通过 Twitter 渠道登录。

前提条件

1. 在 Twitter 开发者网站上设置游戏

1. 创建 Twitter 应用

说明

建议使用腾讯邮箱注册账号,这样可以提高后期申请的成功率。

根据提示在 Twitter 开发者网站 上注册团队开发者账号或个人开发者账号。有了开发者账号,您就可以在 Developer Portal 上创建应用程序。

  1. 创建一个新项目。

    图片:Create Twitter project

  2. 选择一个用例。点击 Next

    图片:Twitter project use case

  3. 输入项目描述。点击 Next

    图片:Twitter project description

  4. 选择应用环境。点击 Save

    图片:Twitter application environment

  5. 输入应用程序名称。点击 Save

    图片:Twitter app name

  6. 创建应用程序后,获取 API key and API secret key。存储此信息。点击 App Settings

    警告

    此页面不会再次显示,请务必保存好此信息。

    图片:Twitter API key and API secret key

  7. 点击 Set up

    图片:Twitter setup

  8. 启用 OAuth2.0 和 OAuth1.0a。在应用程序类型中选择 Web App

    图片:Twitter OAuth

  9. 在应用程序权限中选择 Read And Write

    图片:Twitter app permissions

  10. 为回调 URL 输入测试环境和生产环境 URL。您将进入游戏的官方网站。点击 Save

警告

如果游戏已经上线,则不能删除现有的回调 URL,只能添加。

适用于 Player Network SDK V1.15 及更早版本

https://image.intlgame.com/v2/test/jssdk/twitterlogincallback.html
https://image.intlgame.com/v2/release/jssdk/twitterlogincallback.html

适用于 Player Network SDK V1.16 及更高版本

https://test-common-web.intlgame.com/jssdk/twitterlogincallback.html
https://common-web.intlgame.com/jssdk/twitterlogincallback.html

TWITTER_CONSUMER_USE_SDK 为1时,要使用 INTLConfig.ini 中的 Twitter SDK 登录,请添加以下回调 URL:

twittersdk://
twitterkit-{API Key}://

{API Key} 需要替换为游戏的 API Key,不包括大括号 {}。

图片:Twitter callback URLs

2. 检索应用程序信息

您需要 Twitter app ID 和密码才能在 Player Network 添加 Twitter 登录渠道。

图片:Twitter app information

  1. 获取 Player Network 控制台登录账号
  2. 为游戏创建新项目,或加入已有项目
  3. 下载 SDK
  4. 接入 SDK
  5. 在 Player Network 控制台添加 Twitter 为业务的登录鉴权方式

步骤1:为 Twitter 登录配置 SDK

  1. 打开项目的 INTLConfig.ini 文件:

    INTLConfig.ini
    [INTL environment]
    # WARNING: You should change this URL to the production environment when you release your game.
    INTL_URL = https://test.intlgame.com
    GAME_ID = {INTL_GAME_ID}
    SDK_KEY = {INTL_SDK_KEY}
    [INTL Log]
    LOG_LEVEL = 1
    LOG_CONSOLE_OUTPUT_ENABLE = 1
    LOG_FILE_OUTPUT_ENABLE = 1
    LOG_ENCRYPT_ENABLE = 0
    LOG_COMPRESS_ENABLE = 0
    [Android LifeCycle]
    LIFECYCLE = Twitter
    [Twitter]
    TWITTER_CONSUMER_KEY = {INTL_TWITTER_CONSUMER_KEY}
    TWITTER_CONSUMER_SECRET = {INTL_TWITTER_CONSUMER_SECRET}
    • 将 SDK 后端环境设置为 INTL_URL = https://test.intlgame.com
    • {INTL_GAME_ID}{INTL_SDK_KEY} 替换为 Player Network 控制台 分配的 GAME_IDSDK_KEY 的值。
    • 设置 LOG_LEVEL = 1LOG_CONSOLE_OUTPUT_ENABLE = 1LOG_FILE_OUTPUT_ENABLE = 1LOG_ENCRYPT_ENABLE = 0LOG_COMPRESS_ENABLE = 0,以便在不加密或压缩输出的情况下输出控制台日志和日志文件。
    • LIFECYCLE 中添加 Twitter。有关更多信息,请参见 SDK 环境
    • {INTL_TWITTER_CONSUMER_KEY}{INTL_TWITTER_CONSUMER_SECRET} 替换为 Twitter API key 和 API Key Secret。

步骤2:添加 Twitter 登录

用户登录后,选择 Twitter 渠道来进行绑定。如果用户使用了已经绑定的 Twitter 账号,会提示 server error。再次调用 Bind 接口会需要用户再次登录 Twitter。

  1. 注册登录相关回调。

    // Add callbacks
    public void AddAuthObserver()
    {
    INTLAPI.AddAuthResultObserver(OnAuthResultEvent);
    }

    // Remove callbacks
    public void RemoveAuthObserver()
    {
    INTLAPI.RemoveAuthResultObserver(OnAuthResultEvent);
    }

    // Process the INTLAuthResult callback
    public void OnAuthResultEvent(INTLAuthResult ret)
    {
    Debug.Log($"MethodID: {ret.MethodId}");

    string methodTag = "";
    if (authRet.MethodId == (int)INTLMethodID.INTL_AUTH_LOGIN)
    {
    methodTag = "Login";
    }
    else if (authRet.MethodId == (int)INTLMethodID.INTL_AUTH_BIND)
    {
    methodTag = "Bind";
    }
    else if (authRet.MethodId == (int)INTLMethodID.INTL_AUTH_AUTOLOGIN)
    {
    methodTag = "AutoLogin";
    }
    else if (authRet.MethodId == (int)INTLMethodID.INTL_AUTH_QUERY_USER_INFO)
    {
    methodTag = "QueryUserInfo";
    }
    else if (authRet.MethodId == (int)INTLMethodID.INTL_AUTH_GET_AUTH_RESULT)
    {
    methodTag = "GetAuthResult";
    }
    }
  2. 调用 AutoLogin 接口自动登录。

    INTLAPI.AutoLogin();
  3. 在自动登录失败时调用 Login 接口使玩家手动登录。

    INTLAPI.Login(INTLChannel.Twitter); 
  4. 与游戏后台同步客户端身份验证状态,等待最终验证结果。

[可选] 设置 email 权限

要在 Twitter 登录时获取玩家邮箱需先设置对应权限,开启后将在 AuthResultChannelInfo 中返回 email

  • 基于合规考虑,可针对特定来源对返回的 email 做 mask 处理,如有需求请联系 Player Network 助手 打开。
  • 可在后台流水日志中上报 hash 后的 base64(sha256(email)),如有需求请联系 Player Network 助手 打开。
  • 可用于验证玩家信息或绑定列表是否包含 email 信息,如有需求请联系 Player Network 助手 打开。
  1. Twitter Developer PlatformUser authentication settings 下,勾选 Request email from users

    图片:OAUTH1.OA SETTINGS
  2. Player Network 控制台 开启 email 返回功能,将 return_email 设置为 YES,详细步骤请参见 第三方渠道配置

步骤3:验收登录功能

在 Player Network SDK 日志中搜索关键字 "AuthResult" 确认渠道名称和 OpenID 是否正确返回。如果正确,则表明集成配置成功,登录功能已成功添加。

如果接入过程中遇到问题,请参见 常见问题