05/15/2024 15:19:51

Kwai 渠道说明

一、政策说明

一、政策说明

接入快手渠道前,需先联系 MSDK助手 进行渠道策略评估,评估通过才可正常接入。由于策略原因,目前快手渠道仅支持 Android。

二、功能说明

二、功能说明

快手渠道,支持登录功能,可通过快手账号登录游戏/应用。支持好友功能,可拉取好友列表,可发送链接类型的私信至已关注的快手好友,可发送视频类型的作品至自己的快手主页。MSDK5.7(GCloud2.0.13) 版本开始支持快手渠道,详情请参考如下说明。

2.1 登录功能

支持游戏/应用内通过快手渠道进行登录,如下图所示。其中,授权登录、自动登录和登出说明详见 客户端-登录模块后台-登录鉴权 指引。

需特别注意以下几点说明:
1.快手 App 包名为 com.smile.gifmaker,游戏/应用可以使用此包名,通过 MSDKV5 判断App是否安装 接口判断是否安装快手 App。未安装快手 App,玩家选择快手渠道登录,如下图所示。

2.快手渠道 ID 为 17,渠道名为 Kwai 大小写敏感;
3.在调用 MSDKLogin.Login 的时候可填写如下权限。若不填写权限,则默认拥有 following 和 relation 的权限。其中,following 权限表示关注列表权限,可获取互关的同玩好友。relation 权限表示关系链权限,可获取我关注的同玩好友;

C#
C++
MSDKLogin.Login ("Kwai", "following,relation", "", "");
GCloud::MSDK::MSDKLogin::Login("Kwai", "following,relation", "", "");

4.快手平台逻辑,切换快手账号只能在快手 App 中进行;
5.快手渠道登录,只需要授权一次即可。相同账号后续登录不需要再次进行授权。
(1)快手账号授权后,拥有 30 天的有效期。超出有效期后,再次拉起需要重新授权;
(2)快手账号授权时,Android 不会跳转到快手 App,如下图所示。

2.2 好友功能

支持游戏/应用内获取快手中我关注的同玩好友,如下图所示。说明详见 客户端-好友模块客户端-分享模块后台-个人信息后台-好友关系链 指引。快手渠道,发送/分享仅支持发送链接消息和分享视频作品功能,其他发送/分享类型均不支持。详情请参考如下说明。

2.2.1 发送链接消息

游戏/应用内通过快手渠道登录成功后,可以发送链接类型私信消息给快手好友,如下图所示。其中,发送消息说明详见 发送消息给好友 接口指引。

需特别注意以下几点说明:
1.必填字段,分别有 type(类型)、title(标题)、desc(内容)、link(链接) 和 thumbPath(缩略图,不要超过 52KB);
2.支持发送至指定好友,需将 MSDKFriendReqInfo 的 User 字段填写指定 openid;

3.如果单向关注的好友,私信权限设置为“互关好友”,如下图所示。发送链接消息时,私信列表中就没有该好友。要想私信的话必须先互相关注(私信权限设置:快 手设置-->隐私设置-->谁可以私信我);

2.2.2 分享视频作品

游戏/应用内通过快手渠道登录成功后,可以分享视频作品至自己的快手主页,如下图所示。其中,分享说明详见 分享信息 接口指引。

需特别注意以下几点说明:
1.必填字段,分别有 type(类型)、mediaPath(多媒体地址,需填本地路径);
2.分享视频作品,会如上图所示,留在快手App中没有回调;
3.支持mov,mp4格式,对文件时长大小没有限制。可通过MSDKFriendReqInfo 的ExtraJson 字段传递 tag 标签,也就是类似 #XXX决赛# 的视频标签,格式为 extraJson= "{\"tags\":"game,share"}", 使用逗号分隔 tag;

三、飞鹰系统配置

三、飞鹰系统配置

飞鹰系统打通了快手渠道应用注册通道。接入业务需通过飞鹰系统,获取快手渠道应用信息并下发到服务端。

3.1 获取快手AppID和快手AppKey

接入业务需先联系 MSDK助手 对接快手渠道的注册。注册后,接入业务可从 飞鹰系统 -->游戏管理-->我的游戏-->SDK参数页面获取快手 AppID 和快手 AppKey。如下图所示。

3.2 飞鹰系统下发快手渠道配置

需前往 飞鹰系统 -->游戏管理-->我的游戏-->登录信息页面,勾选对应的联调/正式环境下快手渠道并填写相应渠道信息后并点击发布按钮。

需特别注意以下说明:
飞鹰系统未下发快手渠道配置,会导致登录拉不起快手登录,返回 Config error, it could be invalid gameid or channelid 等错误;

四、Android工程配置

四、Android工程配置

接入快手渠道,Android 工程需要新增快手所需权限、配置 Activity以及 MSDKConfig.ini 中快手相关的配置项,以满足快手渠道接入后正常的使用。

4.1 权限配置

在 AndroidManifest.xml 根节点中新增权限

    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!-- 视频分享需要 -->
    <uses-permission android:name="com.yxcorp.gifshow.thirdparty.auth.read" />

4.2 入口 Activity 配置

在 AndroidManifest.xml 中添加如下配置

<activity
    android:name="com.kwai.opensdk.HandlerRouteActivity"
    android:configChanges="keyboardHidden|keyboard|orientation|screenSize"
    android:exported="true"
    android:screenOrientation="behind"
    android:theme="@style/Kwai.Theme.CustomTranslucent" />

<activity-alias
    android:name="${applicationId}.kwai.KwaiHandlerActivity"
    android:exported="true"
    android:screenOrientation="behind"
    android:targetActivity="com.kwai.opensdk.HandlerRouteActivity" />

<activity
    android:name="com.kwai.opensdk.common.KwaiWebViewActivity"
    android:configChanges="keyboardHidden|keyboard|orientation|screenSize"
    android:launchMode="singleTop"
    android:screenOrientation="behind"
    android:theme="@style/Kwai.Theme.CustomTranslucent"
    android:windowSoftInputMode="adjustResize|adjustPan" />
<activity
    android:name="com.kwai.opensdk.allin.internal.activity.AllInWebViewActivity"
    android:configChanges="keyboardHidden|keyboard|orientation|screenSize"
    android:screenOrientation="behind" />

<!-- ↓↓↓↓私信分享 -->
<activity
    android:name="com.kwai.opensdk.social.DefaultKwaiOpenSocialHandlerActivity"
    android:configChanges="keyboardHidden|keyboard|orientation|screenSize"
    android:exported="true"
    android:screenOrientation="behind"
    android:theme="@style/Kwai.Theme.CustomTranslucent" />

<activity-alias
    android:name="${applicationId}.kwai.OpenSocialHandlerActivity"
    android:configChanges="keyboardHidden|keyboard|orientation|screenSize"
    android:exported="true"
    android:screenOrientation="behind"
    android:targetActivity="com.kwai.opensdk.social.DefaultKwaiOpenSocialHandlerActivity" />

<activity
    android:name="com.kwai.opensdk.social.LoadingActivity"
    android:configChanges="keyboardHidden|keyboard|orientation|screenSize"
    android:screenOrientation="behind"
    android:theme="@style/dialog_style" />
<!-- ↑↑↑↑私信分享 -->

<!-- ↓↓↓↓视频分享 -->
<activity
    android:name="com.kwai.opensdk.share.HandlerRouteActivity"
    android:configChanges="keyboardHidden|keyboard|orientation|screenSize"
    android:exported="true"
    android:screenOrientation="behind"
    android:theme="@style/Share.Kwai.Theme.CustomTranslucent" />

<activity-alias
    android:name="${applicationId}.kwai.KwaiShareHandlerActivity"
    android:exported="true"
    android:screenOrientation="behind"
    android:targetActivity="com.kwai.opensdk.share.HandlerRouteActivity" />

<provider
    android:name="com.kwai.opensdk.share.FileProvider"
    android:authorities="${applicationId}.share.fileprovider"
    android:exported="false"
    android:grantUriPermissions="true" >
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/allin_file_paths" />
</provider>
<!-- ↑↑↑↑视频分享 -->

4.3 MSDKConfig配置

在工程的 assets/MSDKConfig.ini 文件中添加以下配置

[Android 生命周期监控] 
MSDK_LIFECYCLE_OBSERVERS = QQ,WeChat,Kwai

[快手渠道配置]
KWAI_APP_ID = {YOUR_KWAI_APP_ID}
KWAI_ENABLE_H5LOGIN = 1

[Kwai 调试配置]
MSDK_DEBUG = 1
MSDK_DEBUG_CHANNEL = Kwai

需特别注意以下几点说明:
1.需替换 {YOUR_KWAI_APP_ID} 为业务注册的快手AppID,获取方式可参考4.1说明;
2.当快手 App 未安装时,KWAI_ENABLE_H5LOGIN 值为 1 表示使用 H5 页面登录快手。值为 0 表示不使用 H5 登录快手,会返回登录失败的回调,错误为 NEED_INSTALL_APP;
3.{MSDK_DEBUG} 值为 1 表示打开调试模式,值为 0 表示关闭调试模式;{MSDK_DEBUG_CHANNEL} 此开关设置为 Kwai,表示开启 Kwai调试,仅当{MSDK_DEBUG} 为 1 时,此开关生效,在同一配置文件中;

4.4 代码混淆

-ignorewarnings
-verbose

# 泛型与反射
-keepattributes Signature
-keepattributes EnclosingMethod
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable,*JavascriptInterface*,Signature

# 保留注解
-keepattributes *Annotation*
-keep class * extends java.lang.annotation.Annotation {*;}

# 保留序列化
-keepclassmembers class * implements java.io.Serializable {
    static final long serialVersionUID;
    private static final java.io.ObjectStreamField[] serialPersistentFields;
    private void writeObject(java.io.ObjectOutputStream);
    private void readObject(java.io.ObjectInputStream);
    java.lang.Object writeReplace();
    java.lang.Object readResolve();
}
-keep public class * implements java.io.Serializable {*;}
-dontwarn android.os.**

#保持枚举 enum 类不被混淆
-keepclassmembers enum * {
  public static **[] values();
  public static ** valueOf(java.lang.String);
}
-keep class com.kwai.**{*;}
五、服务端配置

五、服务端配置

游戏/应用后台正常接入即可,不用做特别的处理。详情请参考 后台-总体说明。特别注意,快手渠道 channelid 为17,且支持 登录鉴权个人信息同玩好友 等接口。

六、常见问题

六、常见问题

接入快手渠道,常见的一些问题和说明,可以参考如下内容。

6.1 快手登录报错Config error, it could be invalid gameid or channelid

解决方案:接入业务未在飞鹰系统下发快手渠道配置导致此问题,需要参照本文 4.2 飞鹰系统下发快手渠道配置 处说明,前往飞鹰系统下发配置解决此问题。

6.2 快手登录报错Inner token is invalid[3]

解决方案:token无效或 token 使用环境异常导致此问题,需要检查token是否已过期,或检查游戏/应用前后台,是否使用了同一个MSDK环境(联调环境/正式环境)的token数据。

6.3 快手登录报错6(未注册过快手账号的手机号登录)

详细报错日志:{"ret":-1,"msg":"","openid":"","token_expire_time":0,"first":0,"reg_channel_dis":"","user_name":"","picture_url":"","need_name_auth":false,"channel_info":"","bind_list":"","confirm_code":"","confirm_code_expire_time":0,"channelid":0,"retCode":6,"retMsg":"Timeout","token":"","gender":0,"pf":"","pfKey":"","channel":"","methodNameID":112,"extraJson":""}
解决方案:由于,未注册过快手账号的手机账号 web 登录,需要等待验证码以及输入账号和验证码,登录过程比较耗时。所以,建议引导业务调整超时时间(MSDK_LOGIN_OVERTIME 和 MSDK_HTTP_TIMEOUT)来规避此问题。

6.4 Android 快手登录,点击取消授权,返回9999

解决方案:MSDK没有封装快手 SDK 取消授权的错误码 1005 ,建议引导业务通过 ThirdCode 来判断快手取消授权的错误码。

6.5 快手渠道,发送链接消息报错Invalid argument

详细报错日志:(KwaiFriend$ShareListener.java:318) onResult] : Kwai share callback, ret MSDKRet{methodNameID=212, retCode=11, retMsg='Invalid argument', thirdCode=6003, thirdMsg='req checkArgs fail.', extraJson='null'}
解决方案:日志中检索“MSDK : SendMessage infoJson”查看发送链接消息入参。检查type(类型)、title(标题)、desc(内容)、link(链接)和thumbPath(缩略图,不要超过 52KB)是否有填写,没有填写/错误填写,需指引接入业务填写/修改后重试。

6.6 快手渠道,分享视频作品报错No support

详细报错日志:MSDK:OnMSDKMessage,result=212@&@{"ret":1,"msg":"","methodNameID":212,"retCode":7,"retMsg":"No support","extraJson":""}
解决方案:快手渠道,仅支持发送链接消息和分享视频作品功能,其他发送/分享类型均不支持。当使用了快手不支持的发送/分享类型时,就会发生此报错。遇到此报错后,需检查请求中的发送/分享类型,并指引接入业务填写正确后重试。



Copyright © 2024 MSDK.
All rights reserved.

results matching ""

    No results matching ""