12/12/2024 11:37:55

Twitter 渠道功能说明

一、概述

一、概述

Twitter 是美国社交网络及微博客服务的应用。主要用户在欧美地区。

[warning]注意
1. Twitter 官方已经不再维护他们的 SDK, 详见 Twitter官方通告
2. MSDK5.9版本开始,封装了网页版的 Twitter 登陆,规避 Twitter SDK 不再维护的风险。
3. Twitter 自身 SDK 使用 UIWebview,可能被苹果拒审。MSDK5.10.001 版本开始,iOS Twitter 渠道仅支持网页登录,剔除 Twitter SDK。

二、开发者平台配置

二、开发者平台配置

1)注册 Twitter 账号

请到 Twitter 官网注册账号:twitter.com,并根据提示完成账号认证( Email 或者手机认证)。

创建应用需要添加海外手机号,否则会报错。

2)创建 App

有了账号之后,可以在开发者中心创建自己的 App:apps.twitter.com

创建App

3)获取 API Key 及 Secret

在管理端 Keys and Access Tokens 菜单中,找到

获取App Key

4)Callback URLs 配置

Callback URLs 需要填写 Android 和 iOS 的 Scheme:

  • Android 填写固定值为 twittersdk://
  • iOS 为 twitterkit-{Twitter_Key}://{Twitter_Key} 需要替换为游戏的 Twitter Key

设置回调URL

[warning]注意 此处一定要填正确,否则会导手机未安装 Twitter 时,拉起网页登录登录异常

5)权限配置

在管理端 Permissions 页面,确认包含了读写(Read and Write)权限

设置权限

6)配置 MSDK 后台

请到 MSDK 管理端进行后台配置,联系 MSDK助手

三、 工程配置

三、工程配置

3.1 Android

1)配置 Twitter App Key 及 Secret

在 Android 工程 assets/MSDKConfig.ini 中配置 Twitter,如下:

  [Twitter 渠道配置]
    TWITTER_KEY_ANDROID = {Your_Encrypted_Twitter_Key}
    TWITTER_SECRET_ANDROID = {Your_Encrypted_Twitter_Secret}
  • Your_Encrypted_Twitter_Key 需要替换为对管理端中 API Key 加密后的密文
  • Your_Encrypted_Twitter_Secret 需要替换为对管理端中 API Secret 加密后的密文

[warning]注意

  1. MSDK 5.9 版本开始,Twitter 配置区分双端,不再使用 TWITTER_KEYTWITTER_SECRET,安卓用 TWITTER_KEY_ANDROIDTWITTER_SECRET_ANDROID 替换。

  2. MSDK 5.9 版本开始,Twitter 的安卓配置不再使用明文,业务需到 MSDK 管理端上(飞鹰系统 -我的游戏-登录信息-联调环境配置-Twitter)配置签名信息(点击“发布至联调环境”按钮后,再进入加密页面,可以看到使用默认签名加密出来的密文;否则,需要手动输入签名),获取加密后的 Key 和 Secret,用拿到的密文替换 Your_Encrypted_Twitter_KeyYour_Encrypted_Twitter_Secret

  3. 如果业务在不同渠道商店上使用不同的签名,需确保打渠道包时使用的是由对应的签名加密后的密文。5.10 及以上版本的 MSDK Twitter 安卓插件包支持多个 Twitter 密文配置,飞鹰也支持配置多个签名,可在飞鹰上获取到使用多个不同的签名分别进行加密后的密文。

MSDK 5.10 及以上版本,Twitter 安卓支持多个密文配置(使用不同签名对 Twitter Key 和 Secret 进行加密),使用 ',' 进行分隔,注意多个 Key 和 Secret 的顺序需一一对应。在 Android 工程 assets/MSDKConfig.ini 中如下配置:

  [Twitter 渠道配置]
    TWITTER_KEY_ANDROID = {Your_Encrypted_Twitter_Key_1,Your_Encrypted_Twitter_Key_2}
    TWITTER_SECRET_ANDROID = {Your_Encrypted_Twitter_Secret_1,Your_Encrypted_Twitter_Secret_2}
  • Your_Encrypted_Twitter_Key_1,Your_Encrypted_Twitter_Secret_1 需要替换为使用签名1分别对管理端中 API Key 和 API Secret 加密后的密文
  • Your_Encrypted_Twitter_Key_2,Your_Encrypted_Twitter_Secret_2 需要替换为使用签名2分别对管理端中 API Key 和 API Secret 加密后的密文

3.2 iOS

[warning]注意 Twitter SDK 只支持 iOS9 及以上版本

1)配置 Twitter App Key 及 Secret

添加完 MSDKTwitter 的 iOS 插件后,在 Xcode 工程中找到 MSDKAppSetting.bundle/MSDKConfig.ini 文件,增加或修改如下配置:

  [Twitter 渠道配置]
    TWITTER_KEY_IOS = {Your_Twitter_Key}
    TWITTER_SECRET_IOS = {Your_Twitter_Secret}
  • Your_Twitter_Key 需要替换为管理端中的 API Key
  • Your_Twitter_Secret 需要替换为管理端中的 API Secret

[warning]注意 MSDK 5.9 版本开始,Twitter 配置区分双端,不再使用 TWITTER_KEY 和 TWITTER_SECRET,iOS 用 TWITTER_KEY_IOS 和 TWITTER_SECRET_IOS 替换。MSDK 5.10.001 版本开始,此处可无需配置。

2)Xcode 工程配置文件 info.pilst

  <key>CFBundleURLTypes</key>
  <array>
    <dict>
      <key>CFBundleURLSchemes</key>
      <array>
        <string>Twitterkit-<API Key></string>
      </array>
    </dict>
  </array>
  <key>LSApplicationQueriesSchemes</key>
  <array>
      <string>Twitter</string>
      <string>Twitterauth</string>
  </array>

其中 <API Key> 需要替换为游戏的 API Key

3)系统库依赖

  • SafariServices.framework
四、 功能说明

四、功能说明

4.1 登录说明

  • 可通过如下配置,使用 MSDK 封装的网页版 Twitter 登陆:

    1. 在 MSDKConfig.ini 文件中,添加如下配置:

      [Twitter 渠道配置]
         TWITTER_LOGIN_USING_WEB = 1
         TWITTER_WEB_LOGIN_URL = https://cdn.itopsdk.com/v5/{环境}/jssdk/twitterlogin.html
      

      [warning]注意
      iOS MSDK5.10.001版本开始,仅支持网页登录,TWITTER_LOGIN_USING_WEB可无需配置。
      请联系 MSDK助手 配置TWITTER_WEB_LOGIN_URL, 示例:新加坡环境,URL 为 https://cdn.itopsdk.com/v5/sg/jssdk/twitterlogin.html

    2. 如未将上述方法中的 TWITTER_LOGIN_USING_WEB 字段配置为 1,也可在使用登录接口 Login 时,如下配置扩展字段 extraJson 以使用网页版登录。但 必须配置 MSDKConfig.ini 文件中的 TWITTER_WEB_LOGIN_URL 字段,否则无法正常登录。

      String extraJson = "{\"loginUsingWeb\":true}";
      MSDKLogin::Login("Twitter", "", "", extraJson);
      
    3. 在Twitter控制台添加额外的回调地址,如下所示。
      新加坡环境:
      https://cdn.itopsdk.com/v5/sg/jssdk/twitterloginSuccess.html
      硅谷环境:
      https://cdn.itopsdk.com/v5/us/jssdk/twitterloginSuccess.html
      测试环境:
      https://cdn.itopsdk.com/v5/test/jssdk/twitterloginSuccess.html
      其他环境,请联系 MSDK助手 协商。

回调地址

  • 如使用 Twitter 官方 SDK登录,而不使用 MSDK 封装的网页登录,则无需上述配置
    1. Twitter 官方 SDK 登录同时支持 Twitter App 和 web 页面,所以不要求 Twitter App 安装
    2. 组件内部在 Twitter 登录成功后会有缓存,但 Android 与 ios 处理逻辑不一致:
      Android:Twitter 有登录态且 Token 未过期,会直接返回并刷新本地 MSDK 的登录态;(可少拉起一次 Twitter 界面)
      IOS:Twitter 有登录态),会先登出 Twitter 登录态,再继续执行 Twitter 登录;(Twitter IOS 不支持查询 Token 是否过期)
    3. 注意:
      iOS 网页登录方式,点击 done 无回调;
      登录失败无错误码区分;

4.2 登出说明

  1. 安卓登出

MSDK 5.13 版本开始,可通过如下文件,配置 Twitter Android 登出时清除的域名缓存:
文件路径:Twitter 插件下,res/values/arrays.xml

<string-array name="twitter_domain_for_clear_cookies">
    <item>https://.twitter.com</item>
    <item>https://.api.twitter.com</item>
</string-array>

以上为当前默认值,一般情况下不需要进行修改

4.3 好友模块 Twitter 分享说明

Twitter 分享支持文本-图片-链接,只要有一个数据被填充,分享就能进行;

1)Android

  • 未安装应用时跳转到 Twitter 网页分享,已安装应用会跳转到应用内进行分享,但图片分享必须安装应用才可进行;
  • Android 分享不等待 Twitter 结果返回,统一提示成功(发送成功)。例如分享过程中取消返回,此时MSDK依然提示分享成功;

2)IOS(MSDK5.10.001版本开始不再支持)

  • 文本、图片和连接分享,都在应用内弹出对话框分享,不需要安装应用;
  • 如果分享内容包含特殊字符(<>\^等),分享时 Twitter sdk 会报错,请避免使用这些字符;
  • 不能频繁分享相同内容,会报 “Twitter failed to send, Twitter not sent” 错误;

五、常见问题

5.1 Twitter分享失败,报错-1011,NSLocalizedDescription=Request failed: unauthorized (401)

在 Twitter 管理端修改了 permission 后,Read权限无法分享,已登录用户会分享失败,需要用户重新拉起 Twitter 登录后,方可正常分享。

修改permission 修改permission 修改permission



Copyright © 2024 MSDK.
All rights reserved.

results matching ""

    No results matching ""