360社交游戲SDK無界面純數(shù)據(jù)接口通過調(diào)用Matrix.execute來實現(xiàn)。有界面的接口通過Matrix.invokeActivity來實現(xiàn)調(diào)用。
所有360社交sdk的接口需要在UI主線程里調(diào)用。調(diào)用接口是傳入的參數(shù)類型需要與demo代碼中的參數(shù)類型保持一致。
上傳積分:
游戲可自定義游戲中用于排行的數(shù)值(一般為分數(shù)或等級),上傳到360服務(wù)器存儲,用于后面進行排行榜展示。通常競技類游戲在用戶玩完一局后上傳分數(shù);等級排名的游戲,在用戶每次登錄成功后將用戶最新等級上傳。默認排行榜id=0,數(shù)值在每周三上午10點清零。游戲可以定義多個不同排行榜,在上傳對應(yīng)排行數(shù)值的時候指定對應(yīng)排行榜id即可(最多自定義10個排行榜,id為1~10)。
好友排行榜:
接入方案一:采用SDK自帶界面的好友排行榜
調(diào)用SDK『帶界面的排行榜接口』,游戲方無需繪制界面,即可實現(xiàn)游戲內(nèi)好友排行榜的展示。
注意:調(diào)該接口前提是,游戲必須調(diào)用『上傳積分接口』將玩家用于排行的數(shù)值上傳到360服務(wù)器。
接入方案二:
游戲方調(diào)用『好友排行榜接口』拿到360返回的好友列表之后,到游戲服務(wù)器查詢分數(shù)并進行排序,然后給用戶呈現(xiàn)好友排行榜。游戲方可以自定義界面展現(xiàn)排行榜。
邀請好友:
接入方案一:采用SDK自帶界面的邀請好友
調(diào)用SDK『帶界面的邀請好友接口』
接入方案二:游戲自制邀請界面
游戲內(nèi)需要設(shè)置邀請好友按鈕,點擊后調(diào)用『可邀請好友列表接口』,360將返回玩家的可邀請好友列表,包含推薦好友和通訊錄朋友兩部分(通過group字段區(qū)分),其中推薦好友是玩家平臺好友中的非本游戲好友。游戲方自定義邀請好友界面,區(qū)分展示這兩部分??裳埩斜砩显O(shè)置邀請按鈕,點擊后調(diào)用SDK『邀請好友接口』
微博分享:
SDK提供分享接口,該接口目前支持微信、微博等主要分享渠道。
通過分享接口分享出去的應(yīng)用,在用戶下載后,會自動和分享出該應(yīng)用的用戶成為好友。在登錄回調(diào)結(jié)果中,會返回當前用戶最近兩次登錄期間,通過分享新增的好友信息。
為鼓勵玩家分享,游戲可在獲得登錄回調(diào)結(jié)果后,給予用戶獎勵。
功能說明:
需要登錄完成后才能調(diào)用。用戶獲取用戶社交初始化相關(guān)信息。主要包括用戶資料、新增好友等信息。
注意:首次接入,可能接口會返回報錯invalid param appid 400,這是因為SDK有個后臺加白機制,需要等待10分鐘后完成。此類報錯一個應(yīng)用只會報錯1次。如10分鐘后還會報錯,可參看360SDK FAQ詳細排查流程。
接口示例:
// 生成intent參數(shù) private Intent getSocialInitInfoIntent() { Intent intent = new Intent(); // 必須參數(shù),標識通知SDK要執(zhí)行的功能 intent.putExtra(ProtocolKeys.FUNCTION_CODE, ProtocolConfigs.FUNC_CODE_GET_SOCIAL_INIT_INFO); return intent; } // 調(diào)用接口 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(); } }); }
返回數(shù)據(jù)格式:
{ "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, // 通過游戲分享新增的好友總數(shù) users: [ // 通過游戲分享新增的好友相關(guān)信息,目前最多返回前10個 { "username": "demotest001", // 用戶名 "area": "北京市", // 地區(qū) "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); } });
功能說明:
需要獲取可邀請好友列表時,調(diào)用此接口。需要先登錄。該接口會上傳本地通信錄到服務(wù)器,通過服務(wù)器結(jié)合本地通信錄內(nèi)容,返回可邀請的好友列表。
接口示例:
/** * 使用360SDK的獲取可邀請好友列表接口 */ // 生成intent參數(shù) private Intent getGetContactContentIntent(TokenInfo token, boolean isLandScape){ Intent intent = new Intent(); //必須參數(shù),屏幕方向 intent.putExtra(ProtocolKeys.IS_SCREEN_ORIENTATION_LANDSCAPE, isLandScape); //必須參數(shù),表示調(diào)用SDK接口執(zhí)行的功能 intent.putExtra(ProtocolKeys.FUNCTION_CODE, ProtocolConfigs.FUNC_CODE_GET_CONTACT_CONTENT); //可選參數(shù),表示此次獲取可邀請好友列表的開始位置,從0開始。 // 無此參數(shù)時會獲取所有的可邀請好友列表,不進行翻頁。 intent.putExtra(ProtocolKeys.START, mEditGetcontactStart.getText().toString()); //可選參數(shù),表示此次獲取可邀請好友的個數(shù)。 // 無此參數(shù)時會獲取所有的可邀請好友列表,不進行翻頁。 intent.putExtra(ProtocolKeys.COUNT, mEditGetcontactCount.getText().toString()); return intent; } // 調(diào)用接口 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); } }); }
返回數(shù)據(jù)格式:
{ errmsg:"ok", time:1367930392, errno:0, // 服務(wù)器返回的錯誤碼,為0代表成功。 // data 是一個json數(shù)組,其中每個對象保存可邀請的好友信息 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); } });
功能說明:
邀請好友時,調(diào)用此接口。用戶必須已登錄才能調(diào)用。
接口示例:
/** * 使用360SDK的邀請好友接口 */ // 生成intent參數(shù) private Intent getInviteFriendIntent(boolean bLandScape){ Intent intent = new Intent(); //必須參數(shù),表示調(diào)用SDK接口執(zhí)行的功能為批量邀請好友 intent.putExtra(ProtocolKeys.FUNCTION_CODE, ProtocolConfigs.FUNC_CODE_INVITE_FRIEND_BATCH); //必須參數(shù),對方的昵稱 intent.putExtra(ProtocolKeys.NICK_NAME, strNick); //有值就要傳入,加密后的好友電話。使用“獲取可邀請好友列表”接口返回的phone字段中的值。 intent.putExtra(ProtocolKeys.PHONE, strPhone); //有值就要傳入,被邀請用戶的qid,如果沒有可以不傳 intent.putExtra(ProtocolKeys.QID, strQid); //必須參數(shù),邀請信息內(nèi)容。 intent.putExtra(ProtocolKeys.SMS, strSMS); //屏幕方向,bool值,true為橫屏,flase為豎屏 intent.putExtra(ProtocolKeys.IS_SCREEN_ORIENTATION_LANDSCAPE, bLandScape); return intent; } // 調(diào)用接口 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); } }); }
返回數(shù)據(jù)格式:
{ "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); } });
功能說明:
該接口提供一個界面用于展示可邀請好友列表,并能對每個好友進行邀請。當界面銷毀時會通過接口的回調(diào)通知調(diào)用者。必須在登陸狀態(tài)下才能調(diào)用此接口。
接口示例:
/** * 使用360SDK的帶界面的邀請好友接口 */ // 生成intent參數(shù) private Intent getInviteFriendBySdkIntent(boolean bLandScape) { Intent intent = new Intent(this, ContainerActivity.class); //必須參數(shù),表示調(diào)用SDK接口執(zhí)行的功能 intent.putExtra(ProtocolKeys.FUNCTION_CODE, ProtocolConfigs.FUNC_CODE_INVITE_FRIEND_BY_SDK); // 可選參數(shù),360SDK界面是否以橫屏顯示。 intent.putExtra(ProtocolKeys.IS_SCREEN_ORIENTATION_LANDSCAPE, bLandScape); // 可選參數(shù),邀請信息,不需要主語,sdk會添加。 intent.putExtra(ProtocolKeys.SMS, inviteMsg); return intent; } // 調(diào)用接口 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(); } }); }
返回數(shù)據(jù)格式:
{ "errno":0, "errmsg":"finish", invite_count:1 // 用戶在成功發(fā)出邀請的計數(shù) }
callback示例:
new IDispatcherCallback() { @Override public void onFinished(String data) { Toast.makeText(SdkUserBaseActivity.this, data, Toast.LENGTH_SHORT).show(); System.out.println(data); } });
功能說明:
上傳用戶積分/等級到服務(wù)器,更新用戶積分和排行。必須在登錄狀態(tài)下才能調(diào)用此接口。
接口示例:
/** * 使用360SDK的上傳積分接口 */ // 生成intent參數(shù) private Intent getUploadScoreIntent(){ Intent intent = new Intent(); //必須參數(shù),表示調(diào)用SDK接口執(zhí)行的功能為上傳積分 intent.putExtra(ProtocolKeys.FUNCTION_CODE, ProtocolConfigs.FUNC_CODE_UPLOAD_SCORE); //必須參數(shù),用戶積分。 intent.putExtra(ProtocolKeys.SCORE, strScore); //必須參數(shù),數(shù)排行榜標識 intent.putExtra(ProtocolKeys.TOPNID, topnid); return intent; } // 調(diào)用接口 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(); } }); }
返回數(shù)據(jù)格式:
{ 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(); } });
功能說明:
用于獲取游戲中的好友之間的排行榜,必須在登錄狀態(tài)下才能調(diào)用此接口。
接口示例:
/** * 使用360SDK的好友排行榜接口,生成intent參數(shù) */ private Intent getGetGameTopFriendIntent() { Intent intent = new Intent(); //必須參數(shù),表示調(diào)用SDK接口執(zhí)行的功能為游戲的排行榜。 intent.putExtra(ProtocolKeys.FUNCTION_CODE, ProtocolConfigs.FUNC_CODE_GET_RANK_FRIENDS); //可選參數(shù),排名榜的第幾位開始獲取(索引從0開始) intent.putExtra(ProtocolKeys.START, strStart/*"0"*/); //可選參數(shù),排名榜上從start開始,獲取多少位,最小值為20。 // start和count參數(shù)如果不傳的話,會返回最多前20個排行榜內(nèi)容。 intent.putExtra(ProtocolKeys.COUNT, strCount/*"20"*/); // 可選參數(shù),排行榜類型(不填寫,則為默認的排行榜) intent.putExtra(ProtocolKeys.TOPNID, strTopNID); // 可選參數(shù),排序類型(填寫為0則按正序排序,其他情況按倒序排序) intent.putExtra(ProtocolKeys.ORDERBY, strOrderby); return intent; } // 調(diào)用接口 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(); } }); }
返回數(shù)據(jù)格式:
{ 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,// 自己的分數(shù) rank: 4 // 自己在此排行版中的排名 }, all: [ // 我的好友的分數(shù)、排名(包括自己在內(nèi)) { qid: 273002130, // qid nick: "idwanglu2010", // 昵稱 score: 0, // 分數(shù) 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數(shù)組中的項目數(shù) } }
callback示例:
new IDispatcherCallback() { @Override public void onFinished(String data) { if (null == data) { return; } Toast.makeText(SdkUserBaseActivity.this, data, Toast.LENGTH_SHORT).show(); } });
功能說明:
用于獲取游戲中所有玩家之間的排行榜,返回排名前100的用戶,必須在登錄狀態(tài)下才能調(diào)用此接口。
接口示例:
/**
* 使用360SDK的全球排行榜接口,生成intent參數(shù) */ private Intent getGetGameGlobleRankListIntent(){ Intent intent = new Intent(); //必須參數(shù),表示調(diào)用SDK接口執(zhí)行的功能為游戲的排行榜。 intent.putExtra(ProtocolKeys.FUNCTION_CODE, ProtocolConfigs.FUNC_CODE_GET_RANK); //可選參數(shù),排行榜類型(不填寫,則為默認的排行榜) intent.putExtra(ProtocolKeys.TOPNID, strTopNID); //可選參數(shù),排序類型(填寫為0則按正序排序,其他情況按倒序排序) intent.putExtra(ProtocolKeys.ORDERBY, StrOrderby); return intent; } // 調(diào)用接口 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(); } }); }
返回數(shù)據(jù)格式:
{ 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, //返回的數(shù)據(jù)記錄數(shù) total: 2 //全球往此榜單提交過分數(shù)的人數(shù)總數(shù) } }
callback示例:
new IDispatcherCallback() { @Override public void onFinished(String data) { if (null == data) { return; } Toast.makeText(SdkUserBaseActivity.this, data, Toast.LENGTH_SHORT).show(); } });
功能說明:
該接口提供一個界面用于展示好友排行。當界面銷毀時會通過接口的回調(diào)通知調(diào)用者。必須在登錄狀態(tài)下才能調(diào)用此接口。
接口示例:
/** * 使用360SDK的帶界面的排行榜接口, 生成intent參數(shù) */ private Intent getDisplayGameFriendRankIntent(boolean bLandScape) { Intent intent = new Intent(this, ContainerActivity.class); // 必須參數(shù),表示調(diào)用SDK接口執(zhí)行的功能 intent.putExtra(ProtocolKeys.FUNCTION_CODE, ProtocolConfigs.FUNC_CODE_DISPLAY_GAME_FRIEND_RANK); if (!TextUtils.isEmpty(topnId)) { // 可選參數(shù),排行榜ID,與上傳積分時對應(yīng)的排行榜ID對應(yīng), // 使用該參數(shù),需要確定后臺存在對應(yīng)ID的排行榜,否則會顯示錯誤 intent.putExtra(ProtocolKeys.TOPNID, topnId); } // 360SDK界面是否以橫屏顯示。 intent.putExtra(ProtocolKeys.IS_SCREEN_ORIENTATION_LANDSCAPE, bLandScape); return intent; } // 調(diào)用接口 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(); } }); }
返回數(shù)據(jù)格式:
{ errno:0, errmsg:"finish", invite_count:1 // 用戶在成功發(fā)出邀請的計數(shù) }
callback示例:
new IDispatcherCallback() { @Override public void onFinished(String data) { Toast.makeText(SdkUserBaseActivity.this, data, Toast.LENGTH_SHORT).show(); } });
功能說明:
用于獲取個人資料頁信息。必須在登錄狀態(tài)下才能調(diào)用此接口。
接口示例:
/** * 使用360SDK的獲取個人信息資料頁接口 */ // 生成intent參數(shù) 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; } // 調(diào)用接口 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(); } }); }
返回數(shù)據(jù)格式:
{ 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(); } });
功能說明:
需要分享應(yīng)用時,調(diào)用此接口。該接口目前支持微信、微博等主要分享渠道。必須在登錄狀態(tài)下才能調(diào)用此接口。
通過分享接口分享出去的應(yīng)用,在用戶下載后,會自動和分享出該應(yīng)用的用戶成為好友。在登錄回調(diào)結(jié)果中,會返回當前用戶最近兩次登錄期間,通過分享新增的好友信息。具體見登錄接口返回數(shù)據(jù)說明中的“shareapp_newfriend”字段。
為鼓勵玩家分享,游戲可在獲得回調(diào)結(jié)果后,給于用戶獎勵。
接口示例:
// 生成分享接口intent參數(shù) private Intent getShareIntent(String title, String desc, String picture, String icon, String uibg, boolean isLandScape){ Intent intent = new Intent(); // 必須參數(shù),標識通知SDK要執(zhí)行的功能 intent.putExtra(ProtocolKeys.FUNCTION_CODE, ProtocolConfigs.FUNC_CODE_SHARE); // 可選參數(shù),指定橫豎屏,默認為橫屏 intent.putExtra(ProtocolKeys.IS_SCREEN_ORIENTATION_LANDSCAPE, isLandScape); if (!TextUtils.isEmpty(uibg)) { // 可選參數(shù),分享界面的背景圖,不傳就是透明 intent.putExtra(ProtocolKeys.UI_BACKGROUND_PICTRUE, uibg); } // 必須參數(shù),分享的標題,長度不可超過512,這個字段會作為微信網(wǎng)頁分享的標題使用 intent.putExtra(ProtocolKeys.SHARE_TITLE, title); // 必須參數(shù),分享的描述,該內(nèi)容可能會通過短信、微博分享發(fā)出, // 長度請限制在140字符范圍內(nèi)。 intent.putExtra(ProtocolKeys.SHARE_DESC, desc); // 可選參數(shù),分享的圖片路徑,微博分享時會使用 // (必須是本地路徑如:/sdcard/1.png,后綴可以是png、jpg、jpeg, // 大小不能超過5M,尺寸不能超過1280x720) intent.putExtra(ProtocolKeys.SHARE_PIC, picture); // 可選參數(shù),分享的icon路徑,微信分享時會使用 // (必須是本地路徑,最好是png文件,32k以內(nèi)) intent.putExtra(ProtocolKeys.SHARE_ICON, icon); return intent; } // 調(diào)用接口 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(); } }); }
返回數(shù)據(jù)格式:
/* * errno: 錯誤碼:0,分享完成,但不確定是否已經(jīng)發(fā)出分享;1,分享已經(jīng)發(fā)出;-1,分享失敗 * errmsg: 錯誤信息 * shared: bool類型,分享是否已經(jīng)發(fā)出,true為確定分享已經(jīng)發(fā)出 * share_way: 用戶選擇的分享渠道: * clipboar,復(fù)制到剪切板; * 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 分享:在應(yīng)用未上線時,360沒有對應(yīng)的應(yīng)用下載鏈接,游戲只需測試分享內(nèi)容成功發(fā)送到各社交渠道即可。如調(diào)試階段收到分享失敗的錯誤碼提示,請到對應(yīng)渠道官網(wǎng)查看錯誤碼說明:
微信:https://open.weixin.qq.com/zh_CN/htmledition/res/dev/document/sdk/android/index.html
微博:http://open.weibo.com/wiki/Error_code
l 加好友:測試階段如需模擬登錄回調(diào)中返回通過分享新增的好友信息,可在登錄接口調(diào)用時加入?yún)?shù)ProtocolKeys.IS_SOCIAL_SHARE_DEBUG,傳值為true,這樣會認為當前應(yīng)用為demotest001分享出來的。登錄測試帳號demotest002~demotest010,會自動和demotest001這個帳號成為好友。當?shù)卿?/span>demotest001這個帳號時,會在登錄結(jié)果中返回通過分享新增的好友信息。我們提供的測試賬號有:
<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 |
更多建議: