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
3)获取 API Key 及 Secret
在管理端 Keys and Access Tokens
菜单中,找到
4)Callback URLs 配置
Callback URLs 需要填写 Android 和 iOS 的 Scheme:
- Android 填写固定值为
twittersdk://
- iOS 为
twitterkit-{Twitter_Key}://
。{Twitter_Key}
需要替换为游戏的 Twitter Key
[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]注意
MSDK 5.9 版本开始,Twitter 配置区分双端,不再使用
TWITTER_KEY
和TWITTER_SECRET
,安卓用TWITTER_KEY_ANDROID
和TWITTER_SECRET_ANDROID
替换。MSDK 5.9 版本开始,Twitter 的安卓配置不再使用明文,业务需到 MSDK 管理端上(飞鹰系统 -我的游戏-登录信息-联调环境配置-Twitter)配置签名信息(点击“发布至联调环境”按钮后,再进入加密页面,可以看到使用默认签名加密出来的密文;否则,需要手动输入签名),获取加密后的 Key 和 Secret,用拿到的密文替换
Your_Encrypted_Twitter_Key
和Your_Encrypted_Twitter_Secret
。如果业务在不同渠道商店上使用不同的签名,需确保打渠道包时使用的是由对应的签名加密后的密文。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 KeyYour_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 登陆:
在 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
如未将上述方法中的
TWITTER_LOGIN_USING_WEB
字段配置为 1,也可在使用登录接口 Login 时,如下配置扩展字段 extraJson 以使用网页版登录。但 必须配置 MSDKConfig.ini 文件中的TWITTER_WEB_LOGIN_URL
字段,否则无法正常登录。String extraJson = "{\"loginUsingWeb\":true}"; MSDKLogin::Login("Twitter", "", "", extraJson);
在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 封装的网页登录,则无需上述配置
- Twitter 官方 SDK 登录同时支持 Twitter App 和 web 页面,所以不要求 Twitter App 安装
- 组件内部在 Twitter 登录成功后会有缓存,但 Android 与 ios 处理逻辑不一致:
Android:Twitter 有登录态且 Token 未过期,会直接返回并刷新本地 MSDK 的登录态;(可少拉起一次 Twitter 界面)
IOS:Twitter 有登录态),会先登出 Twitter 登录态,再继续执行 Twitter 登录;(Twitter IOS 不支持查询 Token 是否过期) - 注意:
iOS 网页登录方式,点击 done 无回调;
登录失败无错误码区分;
4.2 登出说明
- 安卓登出
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 登录后,方可正常分享。
All rights reserved.