360SDK 社交服務(wù)

2018-10-10 14:00 更新

1.接口說明

    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個排行榜,id1~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é)果后,給予用戶獎勵。

 


2.接口介紹

2.1 獲取社交初始化信息接口

功能說明:

需要登錄完成后才能調(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);
     }
});

 

2.2 獲取可邀請好友列表接口(與邀請好友接口配合使用)

功能說明:

    需要獲取可邀請好友列表時,調(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);
    }
});


2.3 邀請好友接口

功能說明:

    邀請好友時,調(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);
        }
    });


2.4 帶界面的邀請好友接口

功能說明:

    該接口提供一個界面用于展示可邀請好友列表,并能對每個好友進行邀請。當界面銷毀時會通過接口的回調(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);
    }
});


2.5 上傳積分接口(若接入社交相關(guān)功能,則接口必接)

功能說明:

    上傳用戶積分/等級到服務(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();
    }
});


2.6 好友排行榜接口

功能說明:

    用于獲取游戲中的好友之間的排行榜,必須在登錄狀態(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();
    }
});


2.7 全球排行榜接口

功能說明:

    用于獲取游戲中所有玩家之間的排行榜,返回排名前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();
    }
});


2.8 帶界面的排行榜接口

功能說明:

    該接口提供一個界面用于展示好友排行。當界面銷毀時會通過接口的回調(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();
    }
});


2.9 獲取個人信息資料頁接口

功能說明:

    用于獲取個人資料頁信息。必須在登錄狀態(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();
}
});


2.10 分享接口

功能說明:

需要分享應(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



以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號