360SDK 社交服务
1.接口说明
360社交游戏SDK无界面纯数据接口通过调用Matrix.execute来实现。有界面的接口通过Matrix.invokeActivity来实现调用。
所有360社交sdk的接口需要在UI主线程里调用。调用接口是传入的参数类型需要与demo代码中的参数类型保持一致。
上传积分:
游戏可自定义游戏中用于排行的数值(一般为分数或等级),上传到360服务器存储,用于后面进行排行榜展示。通常竞技类游戏在用户玩完一局后上传分数;等级排名的游戏,在用户每次登录成功后将用户最新等级上传。默认排行榜id=0,数值在每周三上午10点清零。游戏可以定义多个不同排行榜,在上传对应排行数值的时候指定对应排行榜id即可(最多自定义10个排行榜,id为1~10)。
好友排行榜:
接入方案一:采用SDK自带界面的好友排行榜
调用SDK『带界面的排行榜接口』,游戏方无需绘制界面,即可实现游戏内好友排行榜的展示。
注意:调该接口前提是,游戏必须调用『上传积分接口』将玩家用于排行的数值上传到360服务器。
接入方案二:
游戏方调用『好友排行榜接口』拿到360返回的好友列表之后,到游戏服务器查询分数并进行排序,然后给用户呈现好友排行榜。游戏方可以自定义界面展现排行榜。
邀请好友:
接入方案一:采用SDK自带界面的邀请好友
调用SDK『带界面的邀请好友接口』
接入方案二:游戏自制邀请界面
游戏内需要设置邀请好友按钮,点击后调用『可邀请好友列表接口』,360将返回玩家的可邀请好友列表,包含推荐好友和通讯录朋友两部分(通过group字段区分),其中推荐好友是玩家平台好友中的非本游戏好友。游戏方自定义邀请好友界面,区分展示这两部分。可邀请列表上设置邀请按钮,点击后调用SDK『邀请好友接口』
微博分享:
SDK提供分享接口,该接口目前支持微信、微博等主要分享渠道。
通过分享接口分享出去的应用,在用户下载后,会自动和分享出该应用的用户成为好友。在登录回调结果中,会返回当前用户最近两次登录期间,通过分享新增的好友信息。
为鼓励玩家分享,游戏可在获得登录回调结果后,给予用户奖励。
2.接口介绍
2.1 获取社交初始化信息接口
功能说明:
需要登录完成后才能调用。用户获取用户社交初始化相关信息。主要包括用户资料、新增好友等信息。
注意:首次接入,可能接口会返回报错invalid param appid 400,这是因为SDK有个后台加白机制,需要等待10分钟后完成。此类报错一个应用只会报错1次。如10分钟后还会报错,可参看360SDK FAQ详细排查流程。
接口示例:
// 生成intent参数 private Intent getSocialInitInfoIntent() { Intent intent = new Intent(); // 必须参数,标识通知SDK要执行的功能 intent.putExtra(ProtocolKeys.FUNCTION_CODE, ProtocolConfigs.FUNC_CODE_GET_SOCIAL_INIT_INFO); return intent; } // 调用接口 protected void doSDKGetSocialInitInfo(QihooUserInfo usrInfo) { if (!checkLoginInfo(usrInfo)) { return; } Intent intent = getSocialInitInfoIntent(); Matrix.execute(this, intent, new IDispatcherCallback() { @Override public void onFinished(String data) { Toast.makeText(SdkUserBaseActivity.this, data, Toast.LENGTH_SHORT).show(); } }); }
返回数据格式:
{ "data": { "shareapp_result": 0, "nick": "dklsokdlslkd", "shareapp_source": {}, "accessinfo": { "user_me": { "avatar": "http://quc.qhimg.com/dm/100_100_100/t01cd9e9229573bdde8.jpg", "name": "wtpr_2014" } }, newfriends: [ // 新增好友 { qid: "105883655", // 新增好友的qid nick: "吉米舟舟", // 新增好友的昵称 phone: "87d7e322b88cb6a893e91a9981ab43f0", // 新增好友的phone avatar: "http://u1.qhimg.com/qhimg/1/2123.e6264a.jpg" // 新增好友的头像 src:"sdk", // 好友来源,可能取值:sdk gamebox is_played_this_game:1 // 是否玩过此游戏,1,玩过;0,没玩过 } ], shareapp_newfriend:{ // 通过游戏分享,新增的好友 total: 3, // 通过游戏分享新增的好友总数 users: [ // 通过游戏分享新增的好友相关信息,目前最多返回前10个 { "username": "demotest001", // 用户名 "area": "北京市", // 地区 "nick": "demo_test_user", // 昵称 "avatar": "http://xxxxx.xxx.xx/x.jpg", // 头像 }, … ] }, "no_self_display_nick": "dklsokdlslkd", "app_inviters": 0 }, "time": 1425266350, "errno": 0, "errmsg": "ok", }
callback示例:
new IDispatcherCallback() { @Override public void onFinished(String data) { if (null == data) { return; } Toast.makeText(SdkUserBaseActivity.this, data, Toast.LENGTH_SHORT).show(); System.out.println(data); } });
2.2 获取可邀请好友列表接口(与邀请好友接口配合使用)
功能说明:
需要获取可邀请好友列表时,调用此接口。需要先登录。该接口会上传本地通信录到服务器,通过服务器结合本地通信录内容,返回可邀请的好友列表。
接口示例:
/** * 使用360SDK的获取可邀请好友列表接口 */ // 生成intent参数 private Intent getGetContactContentIntent(TokenInfo token, boolean isLandScape){ Intent intent = new Intent(); //必须参数,屏幕方向 intent.putExtra(ProtocolKeys.IS_SCREEN_ORIENTATION_LANDSCAPE, isLandScape); //必须参数,表示调用SDK接口执行的功能 intent.putExtra(ProtocolKeys.FUNCTION_CODE, ProtocolConfigs.FUNC_CODE_GET_CONTACT_CONTENT); //可选参数,表示此次获取可邀请好友列表的开始位置,从0开始。 // 无此参数时会获取所有的可邀请好友列表,不进行翻页。 intent.putExtra(ProtocolKeys.START, mEditGetcontactStart.getText().toString()); //可选参数,表示此次获取可邀请好友的个数。 // 无此参数时会获取所有的可邀请好友列表,不进行翻页。 intent.putExtra(ProtocolKeys.COUNT, mEditGetcontactCount.getText().toString()); return intent; } // 调用接口 protected void doSdkGetContactContent(QihooUserInfo usrInfo, boolean isLandScape ){ if(!checkLoginInfo(usrInfo)) { return; } mEditGetcontactStart = (EditText)findViewById(R.id.edit_getcontact_start); mEditGetcontactCount = (EditText)findViewById(R.id.edit_getcontact_count); Intent intent = this.getGetContactContentIntent(isLandScape); Matrix.execute(this, intent, new IDispatcherCallback() { @Override public void onFinished(String data) { Toast.makeText(SdkUserBaseActivity.this, data, Toast.LENGTH_SHORT).show(); System.out.println(data); } }); }
返回数据格式:
{ errmsg:"ok", time:1367930392, errno:0, // 服务器返回的错误码,为0代表成功。 // data 是一个json数组,其中每个对象保存可邀请的好友信息 data:[{ is_friend:0, // 是否为好友 qid:"278772014", // 好友的qid,可能为空字串 phone:" 87d7e322b88cb6a893e91a9981ab43f0", // 好友的电话号码,可能为空字符串 is_invited:0, // 是否邀请过该好友 nick:"vrs132v", // 通信录中姓名 > nickname > 无名大侠+qid > 无名大侠 avatar: "http://u1.qhimg.com/qhimg/quc/...01259qd123.e6264a.jpg", // 头像 last_invited_time :1367930392, //上次邀请的时间 is_played_this_game:0, // 用户是否玩过此游戏,1,玩过;0,没玩过。 group:"contacts", // 标识用户属于哪个分组,可取的值:contacts(来自通信录)recommend(推荐玩家) }] }
callback示例:
new IDispatcherCallback() { @Override public void onFinished(String data) { Toast.makeText(SdkUserBaseActivity.this, data, Toast.LENGTH_SHORT).show(); System.out.println(data); } });
2.3 邀请好友接口
功能说明:
邀请好友时,调用此接口。用户必须已登录才能调用。
接口示例:
/** * 使用360SDK的邀请好友接口 */ // 生成intent参数 private Intent getInviteFriendIntent(boolean bLandScape){ Intent intent = new Intent(); //必须参数,表示调用SDK接口执行的功能为批量邀请好友 intent.putExtra(ProtocolKeys.FUNCTION_CODE, ProtocolConfigs.FUNC_CODE_INVITE_FRIEND_BATCH); //必须参数,对方的昵称 intent.putExtra(ProtocolKeys.NICK_NAME, strNick); //有值就要传入,加密后的好友电话。使用“获取可邀请好友列表”接口返回的phone字段中的值。 intent.putExtra(ProtocolKeys.PHONE, strPhone); //有值就要传入,被邀请用户的qid,如果没有可以不传 intent.putExtra(ProtocolKeys.QID, strQid); //必须参数,邀请信息内容。 intent.putExtra(ProtocolKeys.SMS, strSMS); //屏幕方向,bool值,true为横屏,flase为竖屏 intent.putExtra(ProtocolKeys.IS_SCREEN_ORIENTATION_LANDSCAPE, bLandScape); return intent; } // 调用接口 protected void doSdkInviteFriend(QihooUserInfo usrInfo, boolean bLandScape){ // 检查用户是否登录 if(!checkLoginInfo(usrInfo)) { return; } Intent intent = getInviteFriendIntent(bLandScape); Matrix.execute(this, intent, new IDispatcherCallback() { @Override public void onFinished(String data) { Toast.makeText(SdkUserBaseActivity.this, data, Toast.LENGTH_SHORT).show(); System.out.println(data); } }); }
返回数据格式:
{ "errno": 0, "errmsg": "ok", "time": 1363155828, "data": { "status": "1" //0:邀请失败,1:邀请成功 } }
callback示例:
new IDispatcherCallback() { @Override public void onFinished(String data) { Toast.makeText(SdkUserBaseActivity.this, data, Toast.LENGTH_SHORT).show(); System.out.println(data); } });
2.4 带界面的邀请好友接口
功能说明:
该接口提供一个界面用于展示可邀请好友列表,并能对每个好友进行邀请。当界面销毁时会通过接口的回调通知调用者。必须在登陆状态下才能调用此接口。
接口示例:
/** * 使用360SDK的带界面的邀请好友接口 */ // 生成intent参数 private Intent getInviteFriendBySdkIntent(boolean bLandScape) { Intent intent = new Intent(this, ContainerActivity.class); //必须参数,表示调用SDK接口执行的功能 intent.putExtra(ProtocolKeys.FUNCTION_CODE, ProtocolConfigs.FUNC_CODE_INVITE_FRIEND_BY_SDK); // 可选参数,360SDK界面是否以横屏显示。 intent.putExtra(ProtocolKeys.IS_SCREEN_ORIENTATION_LANDSCAPE, bLandScape); // 可选参数,邀请信息,不需要主语,sdk会添加。 intent.putExtra(ProtocolKeys.SMS, inviteMsg); return intent; } // 调用接口 protected void doSdkInviteFriendBySdk(QihooUserInfo usrinfo, boolean bLandScape) { if (!checkLoginInfo(usrinfo)) { return; } Intent intent = getInviteFriendBySdkIntent(bLandScape); Matrix.invokeActivity(this, intent, new IDispatcherCallback() { @Override public void onFinished(String data) { System.out.println("result: " + data); Toast.makeText(SdkUserBaseActivity.this, "result: " + data, Toast.LENGTH_SHORT).show(); } }); }
返回数据格式:
{ "errno":0, "errmsg":"finish", invite_count:1 // 用户在成功发出邀请的计数 }
callback示例:
new IDispatcherCallback() { @Override public void onFinished(String data) { Toast.makeText(SdkUserBaseActivity.this, data, Toast.LENGTH_SHORT).show(); System.out.println(data); } });
2.5 上传积分接口(若接入社交相关功能,则接口必接)
功能说明:
上传用户积分/等级到服务器,更新用户积分和排行。必须在登录状态下才能调用此接口。
接口示例:
/** * 使用360SDK的上传积分接口 */ // 生成intent参数 private Intent getUploadScoreIntent(){ Intent intent = new Intent(); //必须参数,表示调用SDK接口执行的功能为上传积分 intent.putExtra(ProtocolKeys.FUNCTION_CODE, ProtocolConfigs.FUNC_CODE_UPLOAD_SCORE); //必须参数,用户积分。 intent.putExtra(ProtocolKeys.SCORE, strScore); //必须参数,数排行榜标识 intent.putExtra(ProtocolKeys.TOPNID, topnid); return intent; } // 调用接口 protected void doSdkUploadScore(QihooUserInfo usrInfo){ // 检查用户是否登录 if(!checkLoginInfo(usrInfo)) return; Intent intent = this.getUploadScoreIntent(); Matrix.execute(this, intent, new IDispatcherCallback() { @Override public void onFinished(String data) { Toast.makeText(SdkUserBaseActivity.this, data, Toast.LENGTH_SHORT).show(); } }); }
返回数据格式:
{ errno: 0, errmsg: "ok", time: 1363155828, data: { status: "1" //0:更新失败,1:更新成功 } }
callback示例:
new IDispatcherCallback() { @Override public void onFinished(String data) { if (null == data) { return; } Toast.makeText(SdkUserBaseActivity.this, data, Toast.LENGTH_SHORT).show(); } });
2.6 好友排行榜接口
功能说明:
用于获取游戏中的好友之间的排行榜,必须在登录状态下才能调用此接口。
接口示例:
/** * 使用360SDK的好友排行榜接口,生成intent参数 */ private Intent getGetGameTopFriendIntent() { Intent intent = new Intent(); //必须参数,表示调用SDK接口执行的功能为游戏的排行榜。 intent.putExtra(ProtocolKeys.FUNCTION_CODE, ProtocolConfigs.FUNC_CODE_GET_RANK_FRIENDS); //可选参数,排名榜的第几位开始获取(索引从0开始) intent.putExtra(ProtocolKeys.START, strStart/*"0"*/); //可选参数,排名榜上从start开始,获取多少位,最小值为20。 // start和count参数如果不传的话,会返回最多前20个排行榜内容。 intent.putExtra(ProtocolKeys.COUNT, strCount/*"20"*/); // 可选参数,排行榜类型(不填写,则为默认的排行榜) intent.putExtra(ProtocolKeys.TOPNID, strTopNID); // 可选参数,排序类型(填写为0则按正序排序,其他情况按倒序排序) intent.putExtra(ProtocolKeys.ORDERBY, strOrderby); return intent; } // 调用接口 protected void doSdkGetRankFriend(QihooUserInfo usrInfo){ // 检查用户是否登录 if(!checkLoginInfo(usrInfo)) { return; } Intent intent = this.getGetGameTopFriendIntent(); Matrix.execute(this, intent, new IDispatcherCallback() { @Override public void onFinished(String data) { Toast.makeText(SdkUserBaseActivity.this, data, Toast.LENGTH_SHORT).show(); } }); }
返回数据格式:
{ errno: 0, errmsg: "ok", time: 1369627632, data: { self: { // 当前登录的帐号 qid: "17699179", // 自己的qid nick: "缤纷翼彩", // 自己的昵称 phone: "87d7e322b88cb6a893e91a9981ab43f0", // 自己的电话号码 avatar:"http://u1.qhimg.com/qhimg/...259qd123.e6264a.jpg", // 头像 score: 0,// 自己的分数 rank: 4 // 自己在此排行版中的排名 }, all: [ // 我的好友的分数、排名(包括自己在内) { qid: 273002130, // qid nick: "idwanglu2010", // 昵称 score: 0, // 分数 phone: "", rank: 1, // 排名 avatar:"http://u1.qhimg.com/qhimg/quc/80_8...qd123.e6264a.jpg", // 头像 src:"sdk", // 好友来源,可能取值:sdk,gamebox。如果是自己的话值为self is_played_this_game:1 // 是否玩过此游戏,1,玩过;0,没玩过 } ], count: 2 //all数组中的项目数 } }
callback示例:
new IDispatcherCallback() { @Override public void onFinished(String data) { if (null == data) { return; } Toast.makeText(SdkUserBaseActivity.this, data, Toast.LENGTH_SHORT).show(); } });
2.7 全球排行榜接口
功能说明:
用于获取游戏中所有玩家之间的排行榜,返回排名前100的用户,必须在登录状态下才能调用此接口。
接口示例:
/**
* 使用360SDK的全球排行榜接口,生成intent参数 */ private Intent getGetGameGlobleRankListIntent(){ Intent intent = new Intent(); //必须参数,表示调用SDK接口执行的功能为游戏的排行榜。 intent.putExtra(ProtocolKeys.FUNCTION_CODE, ProtocolConfigs.FUNC_CODE_GET_RANK); //可选参数,排行榜类型(不填写,则为默认的排行榜) intent.putExtra(ProtocolKeys.TOPNID, strTopNID); //可选参数,排序类型(填写为0则按正序排序,其他情况按倒序排序) intent.putExtra(ProtocolKeys.ORDERBY, StrOrderby); return intent; } // 调用接口 protected void doSdkGetGlobalRankList(QihooUserInfo usrInfo){ // 检查用户是否登录 if(!checkLoginInfo(usrInfo)) { return; } Intent intent = this.getGetGameTop100Intent(); Matrix.execute(this, intent, new IDispatcherCallback() { @Override public void onFinished(String data) { Toast.makeText(SdkUserBaseActivity.this, data, Toast.LENGTH_SHORT).show(); } }); }
返回数据格式:
{ errno: 0, errmsg: "ok", time: 1369629092, data: { all: [ { qid: 282713167, nick: "tks264test100", phone: "", rank: 1, score: "100", isfriend: 0 // 对方是不是自己的好友,0不是;1是 avatar: "http://u1.qhimg.com/qhimg/...259qd123.e6264a.jpg" // 头像 src:"sdk", // 好友来源,可能取值:sdk gamebox如果是自己的话值为self is_played_this_game:1 // 是否玩过此游戏,1,玩过;0,没玩过 }, ... ], self: { qid: "17699176", nick: "缤纷翼彩", phone: "87d7e322b88cb6a893e91a9981ab43f9", rank: 3 avatar: "http://u1.qhimg.com/qhimg/quc/80_80/29/01/25/2901259qd123.e6264a.jpg" }, count: 2, //返回的数据记录数 total: 2 //全球往此榜单提交过分数的人数总数 } }
callback示例:
new IDispatcherCallback() { @Override public void onFinished(String data) { if (null == data) { return; } Toast.makeText(SdkUserBaseActivity.this, data, Toast.LENGTH_SHORT).show(); } });
2.8 带界面的排行榜接口
功能说明:
该接口提供一个界面用于展示好友排行。当界面销毁时会通过接口的回调通知调用者。必须在登录状态下才能调用此接口。
接口示例:
/** * 使用360SDK的带界面的排行榜接口, 生成intent参数 */ private Intent getDisplayGameFriendRankIntent(boolean bLandScape) { Intent intent = new Intent(this, ContainerActivity.class); // 必须参数,表示调用SDK接口执行的功能 intent.putExtra(ProtocolKeys.FUNCTION_CODE, ProtocolConfigs.FUNC_CODE_DISPLAY_GAME_FRIEND_RANK); if (!TextUtils.isEmpty(topnId)) { // 可选参数,排行榜ID,与上传积分时对应的排行榜ID对应, // 使用该参数,需要确定后台存在对应ID的排行榜,否则会显示错误 intent.putExtra(ProtocolKeys.TOPNID, topnId); } // 360SDK界面是否以横屏显示。 intent.putExtra(ProtocolKeys.IS_SCREEN_ORIENTATION_LANDSCAPE, bLandScape); return intent; } // 调用接口 protected void doSdkDisplayGameFriendRank(QihooUserInfo usrInfo, boolean bLandScape) { if (!checkLoginInfo(usrInfo)) { return; } Intent intent = getDisplayGameFriendRankIntent(bLandScape); Matrix.invokeActivity(this, intent, new IDispatcherCallback() { @Override public void onFinished(String data) { System.out.println("result: " + data); Toast.makeText(SdkUserBaseActivity.this, "result: " + data, Toast.LENGTH_SHORT).show(); } }); }
返回数据格式:
{ errno:0, errmsg:"finish", invite_count:1 // 用户在成功发出邀请的计数 }
callback示例:
new IDispatcherCallback() { @Override public void onFinished(String data) { Toast.makeText(SdkUserBaseActivity.this, data, Toast.LENGTH_SHORT).show(); } });
2.9 获取个人信息资料页接口
功能说明:
用于获取个人资料页信息。必须在登录状态下才能调用此接口。
接口示例:
/** * 使用360SDK的获取个人信息资料页接口 */ // 生成intent参数 private Intent getUserInfoIntent() { Intent intent = new Intent(); // function code intent.putExtra(ProtocolKeys.FUNCTION_CODE, ProtocolConfigs.FUNC_CODE_GET_USER_INFO); // 用户QID intent.putExtra(ProtocolKeys.QID, qid); return intent; } // 调用接口 protected void doSdkGetUserInfo(QihooUserInfo usrinfo) { if (!checkLoginInfo(usrinfo)) { return; } Intent intent = getUserInfoIntent(); Matrix.execute(this, intent, new IDispatcherCallback() { @Override public void onFinished(String data) { System.out.println(data); Toast.makeText(SdkUserBaseActivity.this, data, Toast.LENGTH_LONG).show(); } }); }
返回数据格式:
{ errno: 0, errmsg: 'ok', time: 1384149855, data: { userinfo: { user_id: "668774323", phoneenc: "ecea6c1ce9f58cdd73bd518d7a154cc7", nick: "shortytall", face: "http://quc.qhimg.com/dm/100_100_...32792671719a.jpg", // 头像 face_large: "http://quc.qhimg.com/dm/180_180_..71719a.jpg", gender: "男", age: 19, astro: "双子座", birthday: "1973-6-13", province: "云南省", city: "红河", weibonick: "", weibouid: "", motto: "", //个性签名 role: "self", //可能的值: self/friend/pursuer/stranger recentgames: [ //最近在玩的游戏,最多4个 { soft_id: "123456", pname: "com.xxxxxx.xxx", logo_url: "http://p18.qhimg.com/dr/3...7fdb9be.png",// 游戏logo name: "游戏名称1", download_times: "459077" }, { soft_id: "234567", pname: "org.xxx.xxx", logo_url: "http://p18.qhimg.com/dr/38_...7fdb9be.png", name: "游戏名称2", download_times: "22155810" }, ... ] } } }
callback示例:
new IDispatcherCallback() { @Override public void onFinished(String data) { Toast.makeText(SdkUserBaseActivity.this, data, Toast.LENGTH_SHORT).show(); } });
2.10 分享接口
功能说明:
需要分享应用时,调用此接口。该接口目前支持微信、微博等主要分享渠道。必须在登录状态下才能调用此接口。
通过分享接口分享出去的应用,在用户下载后,会自动和分享出该应用的用户成为好友。在登录回调结果中,会返回当前用户最近两次登录期间,通过分享新增的好友信息。具体见登录接口返回数据说明中的“shareapp_newfriend”字段。
为鼓励玩家分享,游戏可在获得回调结果后,给于用户奖励。
接口示例:
// 生成分享接口intent参数 private Intent getShareIntent(String title, String desc, String picture, String icon, String uibg, boolean isLandScape){ Intent intent = new Intent(); // 必须参数,标识通知SDK要执行的功能 intent.putExtra(ProtocolKeys.FUNCTION_CODE, ProtocolConfigs.FUNC_CODE_SHARE); // 可选参数,指定横竖屏,默认为横屏 intent.putExtra(ProtocolKeys.IS_SCREEN_ORIENTATION_LANDSCAPE, isLandScape); if (!TextUtils.isEmpty(uibg)) { // 可选参数,分享界面的背景图,不传就是透明 intent.putExtra(ProtocolKeys.UI_BACKGROUND_PICTRUE, uibg); } // 必须参数,分享的标题,长度不可超过512,这个字段会作为微信网页分享的标题使用 intent.putExtra(ProtocolKeys.SHARE_TITLE, title); // 必须参数,分享的描述,该内容可能会通过短信、微博分享发出, // 长度请限制在140字符范围内。 intent.putExtra(ProtocolKeys.SHARE_DESC, desc); // 可选参数,分享的图片路径,微博分享时会使用 // (必须是本地路径如:/sdcard/1.png,后缀可以是png、jpg、jpeg, // 大小不能超过5M,尺寸不能超过1280x720) intent.putExtra(ProtocolKeys.SHARE_PIC, picture); // 可选参数,分享的icon路径,微信分享时会使用 // (必须是本地路径,最好是png文件,32k以内) intent.putExtra(ProtocolKeys.SHARE_ICON, icon); return intent; } // 调用接口 protected void doSdkShare(QihooUserInfo usrInfo, final boolean bLandScape){ if(!checkLoginInfo(usrInfo)) { return; } Intent intent = getShareIntent(etTitle.getText().toString(), etDesc.getText().toString(), etPic.getText().toString(), etIcon.getText().toString(), etUiBg.getText().toString(), bLandScape); Matrix.invokeActivity(SdkUserBaseActivity.this, intent, new IDispatcherCallback() { @Override public void onFinished(String data) { if (null == data) { return; } Toast.makeText(SdkUserBaseActivity.this, data, Toast.LENGTH_SHORT).show(); } }); }
返回数据格式:
/* * errno: 错误码:0,分享完成,但不确定是否已经发出分享;1,分享已经发出;-1,分享失败 * errmsg: 错误信息 * shared: bool类型,分享是否已经发出,true为确定分享已经发出 * share_way: 用户选择的分享渠道: * clipboar,复制到剪切板; * weixin_timeline,微信朋友圈; * weixin_friends,微信好友; * sina_weibo,新浪微博; * sms,短信 */ { "errno": 0, "shared": false, "errmsg": "ok", "share_way": "clipboard", }
callback示例:
new IDispatcherCallback() { @Override public void onFinished(String data) { if (null == data) { return; } Toast.makeText(SdkUserBaseActivity.this, data, Toast.LENGTH_SHORT).show(); System.out.println(data); } });
测试:
l 分享:在应用未上线时,360没有对应的应用下载链接,游戏只需测试分享内容成功发送到各社交渠道即可。如调试阶段收到分享失败的错误码提示,请到对应渠道官网查看错误码说明:
微信:https://open.weixin.qq.com/zh_CN/htmledition/res/dev/document/sdk/android/index.html
微博:http://open.weibo.com/wiki/Error_code
l 加好友:测试阶段如需模拟登录回调中返回通过分享新增的好友信息,可在登录接口调用时加入参数ProtocolKeys.IS_SOCIAL_SHARE_DEBUG,传值为true,这样会认为当前应用为demotest001分享出来的。登录测试帐号demotest002~demotest010,会自动和demotest001这个帐号成为好友。当登录demotest001这个帐号时,会在登录结果中返回通过分享新增的好友信息。我们提供的测试账号有:
<td valign="top" style="border-right-color: windowtext; border-bottom-color: windowtext; border-left-color: windowtext; border-right-width: 1px; border-bottom-
<tr style="
帐号 | 密码 |
demotest001 | q111111 |
demotest002 | q111111 |
demotest003 | q111111 |
demotest004 | q111111 |
更多建议: