{{ errorTipText }}
此文档主要是用于在游戏及应用开发商需要接入掌趣海外SDK各地区特殊功能时的补充文档。
此文档内功能仅接入过程是不能够测试的,需要通过掌趣自动打包工具,打包以后才可以调试。
**请各位根据接入的地区查看需要的接口使用。
接入掌趣的游戏及应用的android客户端开发者。
因为此文档内接口回调接口为一个,根据接口内ID区分,所以建议在初始化就注册回调,回调接口使用在每个接口内有具体说明。
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack();
使用谷歌支付,带FB分享及预注册商品领取功能。
分享文本或者链接内容到FB。
/*** 分享功能** @param value1* share 分享功能固定参数* @param value2* 分享连接的title* @param value3* 分享内容的介绍* @param value4* 分享的连接* @param value5* 分享的图标。 (可以不填,默认为网页缩略图)*/Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("share","THE KING OF FIGHTERS'98UM OL", "内容", "http://chs.98kof.game-bean.com/");
| 参数 | 重要性 | 类型 | 描述 |
|---|---|---|---|
| value1 | 必须 | String | 接口id。本接口为 share |
| value2 | 必须 | String | 分享内容Title,可以为空字符串”” |
| value3 | 必须 | String | 分享内容,可以为空字符串”” |
| value4 | 必须 | String | 分享链接,可以为空字符串”” |
| value5 | 可选 | String | 分享图标链接,参数可选 |
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubif (id.equals("PhotoShare")) {// 分享功能结束if (arg[0].equals("0")) {Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_LONG).show();} else if (arg[0].equals("1")) {Toast.makeText(MainActivity.this, "分享失败 错误", Toast.LENGTH_LONG).show();} else if (arg[0].equals("2")) {Toast.makeText(MainActivity.this, "分享失败 用户取消", Toast.LENGTH_LONG).show();}}}}
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 判断是那个接口返回的回调,本接口为:PhotoShare |
| arg[0] | String | 0 分享成功 1 分享失败,未知错误 2 分享失败,用户取消分享 |
分享图片内容到FB。 使用此功能,用户设备上必须有FB客户端,不然分享失败。
/*** 分享功能** @param value1* share 分享功能固定参数* @param value2* 分享图片的存储路径,全路径*/Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("PhotoShare",imagepath);
| 参数 | 重要性 | 类型 | 描述 |
|---|---|---|---|
| value1 | 必须 | String | 接口id。本接口为 PhotoShare |
| value2 | 必须 | String | 分享图片的本地存储全路径 |
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubif (id.equals("PhotoShare")) {// 分享功能结束if (arg[0].equals("0")) {Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_LONG).show();} else if (arg[0].equals("1")) {Toast.makeText(MainActivity.this, "分享失败 错误", Toast.LENGTH_LONG).show();} else if (arg[0].equals("2")) {Toast.makeText(MainActivity.this, "分享失败 用户取消", Toast.LENGTH_LONG).show();}}}}
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 判断是那个接口返回的回调,本接口为:PhotoShare |
| arg[0] | String | 0 分享成功 1 分享失败,未知错误 2 分享失败,用户取消分享 |
用于获取Facebook好友列表内玩本游戏的用户列表。需要根据返回值内的数据,确定是否有上一页或者下一页,然后调用获取上一页下一页数据接口。
// 获取好友列表内,同样玩当前游戏的好友。Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("FB_GetFriendList");
if(id.equals("FB_GetFriendList")){// 分享功能结束if (arg[0] != null) {// 获取成功try {JSONObject data = new JSONObject(json);mfrienddata = data.getJSONArray("data");for (int i = 0; i < mfrienddata.length(); i++) {JSONObject userdata =mfrienddata.getJSONObject(i);String name = userdata.getString("name");String id = userdata.getString("id");if (userdata.has("Ourpalm_ID")) {String ourid =userdata.getString("Ourpalm_ID");} else {// "没有掌趣ID";}}isnext = data.getBoolean("next"); // 是否有下一页isprevious = data.getBoolean("previous"); // 是否有上一页} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}} else {// 获取失败}}
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 判断是那个接口返回的回调,本接口为:FB_GetFriendList |
| arg[0] | String | 好友列表数据,Json 格式 |
{"data" : [{"id" : "1234567890","name" : "testdata","Ourpalm_ID" : "掌趣id","picture" : {"data" : {"is_silhouette" : false,"url" : ""}}}],"previous" : false,"next" : false}
| 参数 | 描述 |
|---|---|
| data | fb好友列表 |
| previous | true 有上一页数据 false 没有上一个数据 |
| next | true 有下一页数据 false 没有下一个数据 |
| data.id | 好友的fb账户id |
| data.name | 好友的fb账户昵称 |
| data.picture | 好友的头像相关数据 |
| data.Ourpalm_ID | 好友在掌趣的用户ID。 有可能取不到。因为用户可能只是授权,但是没有登录 |
获取好友列表的下一页数据,根据好友列表数据内的数据,判断是否需要调用。获取的列表是根据上一次获取的内容获取的。
比如:
程序上一次获取了获取游戏内好友列表,调用本接口,获取的是游戏内好友列表的下一页数据。
返回数据格式和获取好友列表的格式相同。
// 获取好友列表内,同样玩当前游戏的好友Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("FB_GetFriendList_next");
回调id:FB_GetFriendList_next
回调数据格式通获取好友列表格式。
获取好友列表的上一页数据,根据好友列表数据内的数据,判断是否需要调用。获取的列表是根据上一次获取的内容获取的。
比如:
程序上一次获取了获取游戏内好友列表,调用本接口,获取的是游戏内好友列表的上一页数据。
返回数据格式和获取好友列表的格式相同。
// 获取好友列表内,同样玩当前游戏的好友Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("FB_GetFriendList_previous");
回调id:FB_GetFriendList_previous
回调数据格式通获取好友列表格式。
给没有授权过本游戏的fb好友发送邀请信息,此接口将会调用起fb好友列表,需要用户选择好友发起邀请。 邀请成功以后会返回好友的真实用户ID。
/*** @param id* 接口id* @param Title* 邀请内容标题* @param Msg* 邀请内容*/Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("Friend_Invitation", "邀请","小红对说“ 常来玩哦 ~。~ ”");
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 本接口为:Friend_Invitation |
| arg[0] | String | 邀请内容标题 |
| arg[1] | String | 邀请内容 |
if (id.equals("Friend_Invitation")) {// 邀请功能结束if (arg[0].equals("0")) {String facebookid = arg[1];Toast.makeText(MainActivity.this, "邀请成功", Toast.LENGTH_LONG).show();} else if (arg[0].equals("1")) {Toast.makeText(MainActivity.this, "邀请失败 错误", Toast.LENGTH_LONG).show();} else if (arg[0].equals("2")) {Toast.makeText(MainActivity.this, "邀请失败 用户取消", Toast.LENGTH_LONG).show();}}
邀请成功的情况下arg[1] 为被邀请人真实的fbid
用户调用此接口后,FB链接将会断开,FB获取好友功能将不能使用。主要是
用于断开FB缓存的账号数据。
此功能并不能取消授权,只是相当于注销了本地FB账户的的登录。
Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("FB_Logout");
if (id.equals("FB_Logout")){// 断开成功}
根据游戏传入的google预注册商品id判断玩家是否在Google商店领取过预注册商品。
此功能最好在游戏账号登录成功后调用。
注意:传入的google预注册商品id是google后台申请的原始预注册商品id。
Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("CheckGooglePreRegistrationCode","opm_tw_gg_pregift");
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 本接口为:CheckGooglePreRegistrationCode |
| arg[0] | String | google预注册商品id |
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubLogs.i("info", " Ourpalm_Spreads id = " + id + ", arg[0] =" + arg[0]);if (id.equals("CheckGooglePreRegistrationCode")) {// 是否领取预注册奖励回调if (arg[0].equals("0")) {Toast.makeText(MainActivity.this, "没有可以领取的奖励", Toast.LENGTH_LONG).show();} else if (arg[0].equals("1")) {Toast.makeText(MainActivity.this, "可以领取奖励", Toast.LENGTH_LONG).show();}}}});
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 判断是那个接口返回的回调,本接口为:CheckGooglePreRegistrationCode |
| arg[0] | String | 0 没有可以领取的奖励 1 可以领取奖励 |
领取google预注册奖励接口,用户进入游戏登录角色后调用。
Ourpalm_Channel_Spreads("ConsumeGooglePreRegistrationCode","opm_tw_gg_pregift","testroleId123", "testrolename123", "605","http://pay.gamebean.net/OurPalm_Pay_Accept/ResponseDeliver","extendParams");
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 本接口为:ConsumeGooglePreRegistrationCode |
| arg[0] | String | google预注册商品id |
| arg[1] | String | 角色id |
| arg[2] | String | 角色名称 |
| arg[3] | String | 游戏服Id |
| arg[4] | String | 预注册礼包发货地址 |
| arg[5] | String | 游戏自定义参数 |
if (id.equals("ConsumeGooglePreRegistrationCode")) {//领取预注册奖励回调if (arg[0].equals("0")) {Toast.makeText(MainActivity.this, "领取失败", Toast.LENGTH_LONG).show();} else if (arg[0].equals("1")) {Toast.makeText(MainActivity.this, "领取成功", Toast.LENGTH_LONG).show();}}
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 判断是那个接口返回的回调,本接口为:ConsumeGooglePreRegistrationCode |
| arg[0] | String | 0 领取失败 1 领取成功 |
用于玩家在google play商店兑换促销码后,领取相关道具时使用的接口,需要在角色登录后才可进行调用,如果游戏已接入google预注册商品领取功能,需要先调用预注册领取接口后再调用本接口。
Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity). Ourpalm_Channel_Spreads("CheckGooglePromotionCode","http://pay.gamebean.net/OurPalm_Pay_Accept/ResponseDeliver");
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 本接口为:CheckGooglePromotionCode |
| arg[0] | String | google play card促销码发货url |
使用谷歌支付,使用快速登录(没有登录界面),使用继承码功能切换账户。
带有Twitter及Facebook分享功能。
分享文本或者链接内容到Twitter。
/***@param id* 接口id :share*@param msg* 分享到twitter内容*/Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("share","分享的内容");
| 参数 | 重要性 | 描述 |
|---|---|---|
| id | 必须 | 接口id:share |
| msg | 必须 | 分享到twitter内容 |
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubif (id.equals("share")) {// 分享功能结束if (arg[0].equals("0")) {Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_LONG).show();} else if (arg[0].equals("1")) {Toast.makeText(MainActivity.this, "分享失败 错误", Toast.LENGTH_LONG).show();} else if (arg[0].equals("2")) {Toast.makeText(MainActivity.this, "分享失败 用户取消", Toast.LENGTH_LONG).show();}}}}
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 判断是那个接口返回的回调,本接口为:share |
| arg[0] | String | 0 分享成功 1 分享失败,未知错误 2 分享失败,用户取消分享 |
分享图片内容到Twitter。
只有Android 11以下系统才可以分享图片
/***@param id* 接口id :PhotoShare*@param msg* 分享图片的存储地址,全路径*/Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("PhotoShare","分享图片的存储地址,全路径");
| 参数 | 重要性 | 描述 |
|---|---|---|
| id | 必须 | 接口id:PhotoShare |
| msg | 必须 | 分享图片的存储地址,全路径 |
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubif (id.equals("PhotoShare")) {// 分享功能结束if (arg[0].equals("0")) {Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_LONG).show();} else if (arg[0].equals("1")) {Toast.makeText(MainActivity.this, "分享失败 错误", Toast.LENGTH_LONG).show();} else if (arg[0].equals("2")) {Toast.makeText(MainActivity.this, "分享失败 用户取消", Toast.LENGTH_LONG).show();}}}}
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 判断是那个接口返回的回调,本接口为:PhotoShare |
| arg[0] | String | 0 分享成功 1 分享失败,未知错误 2 分享失败,用户取消分享 |
分享文本或者链接内容到Facebook。
/***@param id* 接口id :Facebook_share*@param msg* 分享到twitter内容*/Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("Facebook_share","分享的内容");
| 参数 | 重要性 | 描述 |
|---|---|---|
| id | 必须 | 接口id:Facebook_share |
| msg | 必须 | 分享到twitter内容 |
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubif (id.equals("Facebook_share")) {// 分享功能结束if (arg[0].equals("0")) {Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_LONG).show();} else if (arg[0].equals("1")) {Toast.makeText(MainActivity.this, "分享失败 错误", Toast.LENGTH_LONG).show();} else if (arg[0].equals("2")) {Toast.makeText(MainActivity.this, "分享失败 用户取消", Toast.LENGTH_LONG).show();}}}}
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 判断是那个接口返回的回调,本接口为:Facebook_share |
| arg[0] | String | 0 分享成功 1 分享失败,未知错误 2 分享失败,用户取消分享 |
分享图片内容到Facebook。
/***@param id* 接口id :Facebook_PhotoShare*@param msg* 分享图片的存储地址,全路径*/Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("Facebook_PhotoShare","分享图片的存储地址,全路径");
| 参数 | 重要性 | 描述 |
|---|---|---|
| id | 必须 | 接口id:Facebook_PhotoShare |
| msg | 必须 | 分享图片的存储地址,全路径 |
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubif (id.equals("Facebook_PhotoShare")) {// 分享功能结束if (arg[0].equals("0")) {Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_LONG).show();} else if (arg[0].equals("1")) {Toast.makeText(MainActivity.this, "分享失败 错误", Toast.LENGTH_LONG).show();} else if (arg[0].equals("2")) {Toast.makeText(MainActivity.this, "分享失败 用户取消", Toast.LENGTH_LONG).show();}}}}
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 判断是那个接口返回的回调,本接口为:Facebook_PhotoShare |
| arg[0] | String | 0 分享成功 1 分享失败,未知错误 2 分享失败,用户取消分享 |
使用谷歌支付,使用kakao账户登录。
带有kakao 分享,获取好友,邀请功能。
获取kakao好友列表,本好友列表内的好友都是授权过本游戏的好友。
/***@param id* 接口id :Kakao_RegisteredFriends*/Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("Kakao_RegisteredFriends");
回调接口:Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack();
回调id:Kakao_RegisteredFriends
if (id.equals("Kakao_RegisteredFriends")) {if (arg[0] != null) {try {JSONObject frienddata = new JSONObject(arg[0]);JSONArray friendarray = frienddata.getJSONArray("data");for (int i = 0; i < friendarray.length(); i++) {JSONObject userinfo =friendarray.getJSONObject(i);mFriendList.add(KakaoFriendInfo.praseToFriendInfo(userinfo));}isnext = frienddata.getBoolean("next");} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}}else{// 获取失败}}
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id:本功能固定为:Kakao_RegisteredFriends |
| arg[0] | String | 列表数据,Json 格式 |
arg[0]参数内好友数据格式介绍
| 参数 | 类型 | 描述 |
|---|---|---|
| data | json数组 | 数组内为各个好友的数据 |
| next | Boolean | 是否有下一页好友列表 true 有 false 没有了 |
| data.userid | String | 好友在本游戏的kakaoid |
| data.nickName | String | 好友的kakao昵称 |
| data.ThumbnailImagePath | String | 好友的kakao头像 |
| data.msg_blocked | Boolean | 好友设置的是 是否允许接收消息 true 接收 false 不接收 |
| data.isTalkFriend | Boolean | 好友是不是kakaoTalk好友 true 是 false 不是 |
| data.isStoryFriend | Boolean | 好友是不是kakaoStory好友 true 是 false 不是 |
获取kakao好友列表,本好友列表内的好友都是没有授权过本游戏的好友。
可以用来做邀请好友
回调同获取游戏内好友列表。id有区分
/***@param id* 接口id :Kakao_RecommendedInvitableFriends*/Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("Kakao_RecommendedInvitableFriends");
回调接口:Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack();
回调id:Kakao_RecommendedInvitableFriends
if (id.equals("Kakao_RecommendedInvitableFriends")) {if (arg[0] != null) {try {JSONObject frienddata = new JSONObject(arg[0]);JSONArray friendarray = frienddata.getJSONArray("data");for (int i = 0; i < friendarray.length(); i++) {JSONObject userinfo =friendarray.getJSONObject(i);mFriendList.add(KakaoFriendInfo.praseToFriendInfo(userinfo));}isnext = frienddata.getBoolean("next");} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}}else{// 获取失败}}
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id:本功能固定为:Kakao_RecommendedInvitableFriends |
| arg[0] | String | 列表数据,Json 格式 |
arg[0]参数内好友数据格式介绍
| 参数 | 类型 | 描述 |
|---|---|---|
| data | json数组 | 数组内为各个好友的数据 |
| next | Boolean | 是否有下一页好友列表 true 有 false 没有了 |
| data.userid | String | 好友在本游戏的kakaoid |
| data.nickName | String | 好友的kakao昵称 |
| data.ThumbnailImagePath | String | 好友的kakao头像 |
| data.msg_blocked | Boolean | 好友设置的是 是否允许接收消息 true 接收 false 不接收 |
| data.isTalkFriend | Boolean | 好友是不是kakaoTalk好友 true 是 false 不是 |
| data.isStoryFriend | Boolean | 好友是不是kakaoStory好友 true 是 false 不是 |
根据好友列表返回的是否有下一页数据获取好友列表。
根据上一次获取的好友列表连续获取。
列如:
上一次调用获取的游戏内好友,本次是连续获取游戏内好友。
回调同获取好友列表。id有区分
/***@param id* 接口id :Kakao_RecommendedInvitableFriends*/Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("Kakao_GetFriends_After");
回调接口:Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack();
回调id:Kakao_GetFriends_After
if (id.equals("Kakao_GetFriends_After")) {if (arg[0] != null) {try {JSONObject frienddata = new JSONObject(arg[0]);JSONArray friendarray = frienddata.getJSONArray("data");for (int i = 0; i < friendarray.length(); i++) {JSONObject userinfo =friendarray.getJSONObject(i);mFriendList.add(KakaoFriendInfo.praseToFriendInfo(userinfo));}isnext = frienddata.getBoolean("next");} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}}else{// 获取失败}}
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id:本功能固定为:Kakao_RecommendedInvitableFriends |
| arg[0] | String | 列表数据,Json 格式 |
arg[0]参数内好友数据格式介绍
| 参数 | 类型 | 描述 |
|---|---|---|
| data | json数组 | 数组内为各个好友的数据 |
| next | Boolean | 是否有下一页好友列表 true 有 false 没有了 |
| data.userid | String | 好友在本游戏的kakaoid |
| data.nickName | String | 好友的kakao昵称 |
| data.ThumbnailImagePath | String | 好友的kakao头像 |
| data.msg_blocked | Boolean | 好友设置的是 是否允许接收消息 true 接收 false 不接收 |
| data.isTalkFriend | Boolean | 好友是不是kakaoTalk好友 true 是 false 不是 |
| data.isStoryFriend | Boolean | 好友是不是kakaoStory好友 true 是 false 不是 |
此接口用于给玩本游戏的好友发送消息。炫耀,激活,一起游戏,分享等等,消息。
分享内容是游戏运营在kakao后台设置好的模板,然后产生模板id。
分享时游戏需要把模板id告知SDK。
请使用好友的msg_blocked 数据判断用户是否接收,如果用户设置不接收请不要发送。
/*** 给游戏中好友分享消息— 不带图片的** @param kakao* 分享固定参数 Kakao_SendGameMessage* @param 指定好友id* @param 消息模板id* 运营提供*/Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads(InviteMessage,"Kakao_SendGameMessage", userdata.userId, "3218");
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id:本功能固定为:Kakao_SendGameMessage |
| arg[0] | String | 接收消息的用户id |
| arg[1] | String | 分享模板id |
回调接口:Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack();
回调id:Kakao_SendGameMessage
if (id.equals("Kakao_SendGameMessage")) {// 分享功能结束if (arg[0].equals("0")) {Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_LONG).show();} else if (arg[0].equals("1")) {Toast.makeText(MainActivity.this, "分享失败 错误", Toast.LENGTH_LONG).show();} else if (arg[0].equals("2")) {Toast.makeText(MainActivity.this, "分享失败 用户取消", Toast.LENGTH_LONG).show();}}
此接口用于给玩本游戏的好友发送消息。炫耀,激活,一起游戏,分享等等,消息。
分享内容是游戏运营在kakao后台设置好的模板,然后产生模板id。
分享时游戏需要把模板id告知SDK。
请使用好友的msg_blocked 数据判断用户是否接收,如果用户设置不接收请不要发送。
/*** 给游戏中好友分享消息— 不带图片的** @param kakao* 分享固定参数 Kakao_SendGameMessage* @param 指定好友id* @param 消息模板id* 运营提供* @param 图片的完整路径*/Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads(InviteMessage,"Kakao_SendImageMessage", userdata.userId, "3218","图片的完整路径");
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id:本功能固定为:Kakao_SendImageMessage |
| arg[0] | String | 接收消息的用户id |
| arg[1] | String | 分享模板id |
| arg[2] | String | 图片的完整路径 |
回调接口:Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack();
回调id:Kakao_SendImageMessage
if (id.equals("Kakao_SendImageMessage")) {// 分享功能结束if (arg[0].equals("0")) {Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_LONG).show();} else if (arg[0].equals("1")) {Toast.makeText(MainActivity.this, "分享失败 错误", Toast.LENGTH_LONG).show();} else if (arg[0].equals("2")) {Toast.makeText(MainActivity.this, "分享失败 用户取消", Toast.LENGTH_LONG).show();}}
此接口用于给没有玩本游戏的好友发送邀请消息。
分享内容是游戏运营在kakao后台设置好的模板,然后产生模板id。
分享时游戏需要把模板id告知SDK。
请使用好友的msg_blocked 数据判断用户是否接收,如果用户设置不接收请不要发送。
/*** 给游戏中好友分享消息— 不带图片的** @param kakao* 分享固定参数 Kakao_SendRecommendedInviteMessage* @param 指定好友id* @param 消息模板id* 运营提供* @param 图片的完整路径*/Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads(InviteMessage,"Kakao_SendRecommendedInviteMessage", userdata.userId, "3218");
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id:本功能固定为:Kakao_SendRecommendedInviteMessage |
| arg[0] | String | 接收消息的用户id |
| arg[1] | String | 分享模板id |
回调接口:Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack();
回调id:Kakao_SendRecommendedInviteMessage
if (id.equals("Kakao_SendRecommendedInviteMessage")) {// 分享功能结束if (arg[0].equals("0")) {Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_LONG).show();} else if (arg[0].equals("1")) {Toast.makeText(MainActivity.this, "分享失败 错误", Toast.LENGTH_LONG).show();} else if (arg[0].equals("2")) {Toast.makeText(MainActivity.this, "分享失败 用户取消", Toast.LENGTH_LONG).show();}}
用户可以在游戏内设置屏蔽接收分享消息。
/*** 设置屏蔽消息** @param id* 接口id:Kakao_showMessageBlock*/Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads(InviteMessage,"Kakao_showMessageBlock");
回调接口:Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack();
回调id:Kakao_showMessageBlock
if (id.equals("Kakao_showMessageBlock")) {// 设置结束,当前用户状态// arg[0] = true Inbound messages have been blocked 不接收消息// arg[0] = false Inbound messages are accepted 接收消息}
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id:本功能固定为:Kakao_SendRecommendedInviteMessage |
| arg[0] | String | 当前用户是否接收消息 true 不接收消息 接收消息 |
用户可以在游戏内设置断开游戏链接。
用户调用此功能以后,会被注销。然后再次登录,kakao 会生成新的用户id。 旧id不能被找回。
此接口属于不可逆操作。请谨慎
/*** 设置屏蔽消息** @param id* 接口id:KakaoUnregister*/Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("KakaoUnregister");
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id:本功能固定为:KakaoUnregister |
// 特殊功能回调接口。Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubif (id.equals("KakaoUnregister")) {Logs.i("info", "KakaoUnregister arg[0] =" + arg[0]);try {JSONObject checkResultJson = new JSONObject(arg[0]);String status = checkResultJson.getString("status");String code = checkResultJson.getString("code");String desc = checkResultJson.getString("desc");if (status.equals("1")) {Toast.makeText(MainActivity.this,"删除账号成功, arg[0] =" + arg[0], Toast.LENGTH_LONG).show();} else {Toast.makeText(MainActivity.this,"删除账号失败, arg[0] =" + arg[0], Toast.LENGTH_LONG).show();}} catch (Exception e) {}}}});
可以通过指定的消息模板ID,给kakao好友分享相关内容
//游戏内好友分享HashMap<String, Object> MessageMetaInfo = new HashMap<String, Object>();String reviceid = "91441594091844641";// 内容根据游戏自建的模板添加MessageMetaInfo.put("sender_nick", "掌趣测试昵称");MessageMetaInfo.put("score", "100");// 将要发送的信息内容,渠道标识 接收方的用户ID,消息模板IDOurpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads(MessageMetaInfo,"KakaoSendLinkMessage", reviceid, "99975");//非游戏内好友分享HashMap<String, Object> MessageMetaInfo = new HashMap<String, Object>();// 内容根据游戏自建的模板添加MessageMetaInfo.put("sender_nick", "掌趣测试昵称");MessageMetaInfo.put("score", "100");// 将要发送的信息内容,渠道标识 消息模板IDOurpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads(MessageMetaInfo,"KakaoSendLinkMessage", "", "99975");
| 参数 | 参数类型 | 描述 |
|---|---|---|
| sender_nick | 动态参数(跟随模板) | 掌趣运营提供的模版内的参数,具体作用请运营提供。 |
| score | 动态参数(跟随模板) | 掌趣运营提供的模版内的参数,具体作用请运营提供。 |
| image | String | 图片的完整路径 |
| id | String | 接口id:本功能固定为:KakaoSendLinkMessage |
| reviceid | String | kakao好友uid |
| msgid | String | 消息模板id |
注意:
调用游戏内好友分享时,需要先调用获取kakao游戏好友列表接口KakaoGetFriends后获取到好友reviceid(user_id)后,再调用KakaoSendLinkMessage给对应的好友分享。
调用非游戏内好友分享时,revicei字段直接传””空串就行。
// 特殊功能回调接口。Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubif (id.equals("KakaoSendLinkMessage")) {Logs.i("info", "KakaoSendLinkMessage arg[0] =" + arg[0]);try {JSONObject checkResultJson = new JSONObject(arg[0]);String status = checkResultJson.getString("status");String code = checkResultJson.getString("code");String desc = checkResultJson.getString("desc");if (status.equals("1")) {Toast.makeText(MainActivity.this,"好友分享成功, arg[0] =" + arg[0], Toast.LENGTH_LONG).show();} else {Toast.makeText(MainActivity.this,"好友分享失败, arg[0] =" + arg[0], Toast.LENGTH_LONG).show();}} catch (Exception e) {}}}});
使用谷歌支付,带FB功能。
分享文本或者链接内容到FB。
/*** 分享功能** @param value1* share 分享功能固定参数* @param value2* 分享连接的title* @param value3* 分享内容的介绍* @param value4* 分享的连接* @param value5* 分享的图标。 (可以不填,默认为网页缩略图)*/Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("share","THE KING OF FIGHTERS'98UM OL", "内容", "http://chs.98kof.game-bean.com/");
| 参数 | 重要性 | 类型 | 描述 |
|---|---|---|---|
| value1 | 必须 | String | 接口id。本接口为 share |
| value2 | 必须 | String | 分享内容Title,可以为空字符串”” |
| value3 | 必须 | String | 分享内容,可以为空字符串”” |
| value4 | 必须 | String | 分享链接,可以为空字符串”” |
| value5 | 可选 | String | 分享图标链接,参数可选 |
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubif (id.equals("share")) {// 分享功能结束if (arg[0].equals("0")) {Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_LONG).show();} else if (arg[0].equals("1")) {Toast.makeText(MainActivity.this, "分享失败 错误", Toast.LENGTH_LONG).show();} else if (arg[0].equals("2")) {Toast.makeText(MainActivity.this, "分享失败 用户取消", Toast.LENGTH_LONG).show();}}}}
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 判断是那个接口返回的回调,本接口为:share |
| arg[0] | String | 0 分享成功 1 分享失败,未知错误 2 分享失败,用户取消分享 |
分享带标签的文本内容到FB。
/*** 分享功能** @param value1* share 分享功能固定参数* @param value2* 分享连接的title* @param value3* 分享内容的介绍* @param value4* 分享的连接* @param value5* 分享的标签。(以"#"开头)*/Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("share","THE KING OF FIGHTERS'98UM OL", "内容", "#testTag");
| 参数 | 重要性 | 类型 | 描述 |
|---|---|---|---|
| value1 | 必须 | String | 接口id。本接口为 tagShare |
| value2 | 必须 | String | 分享内容Title,可以为空字符串”” |
| value3 | 必须 | String | 分享内容,可以为空字符串”” |
| value4 | 必须 | String | 分享链接,可以为空字符串”” |
| value5 | 必须 | String | 分享的标签。(以”#”开头) |
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubif (id.equals("share")) {// 分享功能结束if (arg[0].equals("0")) {Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_LONG).show();} else if (arg[0].equals("1")) {Toast.makeText(MainActivity.this, "分享失败 错误", Toast.LENGTH_LONG).show();} else if (arg[0].equals("2")) {Toast.makeText(MainActivity.this, "分享失败 用户取消", Toast.LENGTH_LONG).show();}}}}
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 判断是那个接口返回的回调,本接口为:share |
| arg[0] | String | 0 分享成功 1 分享失败,未知错误 2 分享失败,用户取消分享 |
分享图片内容到FB。 使用此功能,用户设备上必须有FB客户端,不然分享失败。
/*** 分享功能** @param value1* share 分享功能固定参数* @param value2* 分享图片的存储路径,全路径*/Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("PhotoShare",imagepath);
| 参数 | 重要性 | 类型 | 描述 |
|---|---|---|---|
| value1 | 必须 | String | 接口id。本接口为 PhotoShare |
| value2 | 必须 | String | 分享图片的本地存储全路径 |
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubif (id.equals("PhotoShare")) {// 分享功能结束if (arg[0].equals("0")) {Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_LONG).show();} else if (arg[0].equals("1")) {Toast.makeText(MainActivity.this, "分享失败 错误", Toast.LENGTH_LONG).show();} else if (arg[0].equals("2")) {Toast.makeText(MainActivity.this, "分享失败 用户取消", Toast.LENGTH_LONG).show();}}}}
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 判断是那个接口返回的回调,本接口为:PhotoShare |
| arg[0] | String | 0 分享成功 1 分享失败,未知错误 2 分享失败,用户取消分享 |
分享带标签的图片内容到FB。 使用此功能,用户设备上必须有FB客户端,不然分享失败。
/*** 带分享标签的图片分享功能** @param value1* share 分享功能固定参数* @param value2* 分享图片的存储路径,全路径* @param value3* 分享的标签。(以"#"开头)*/Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("tagPhotoShare",imagepath, "#testtag");
| 参数 | 重要性 | 类型 | 描述 |
|---|---|---|---|
| value1 | 必须 | String | 接口id。本接口为 tagPhotoShare |
| value2 | 必须 | String | 分享图片的本地存储全路径 |
| value3 | 必须 | String | 分享的标签。(以”#”开头) |
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubif (id.equals("PhotoShare")) {// 分享功能结束if (arg[0].equals("0")) {Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_LONG).show();} else if (arg[0].equals("1")) {Toast.makeText(MainActivity.this, "分享失败 错误", Toast.LENGTH_LONG).show();} else if (arg[0].equals("2")) {Toast.makeText(MainActivity.this, "分享失败 用户取消", Toast.LENGTH_LONG).show();}}}}
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 判断是那个接口返回的回调,本接口为:PhotoShare |
| arg[0] | String | 0 分享成功 1 分享失败,未知错误 2 分享失败,用户取消分享 |
用于获取Facebook好友列表内玩本游戏的用户列表。需要根据返回值内的数据,确定是否有上一页或者下一页,然后调用获取上一页下一页数据接口。
// 获取好友列表内,同样玩当前游戏的好友。Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("FB_GetFriendList");
if(id.equals("FB_GetFriendList")){// 分享功能结束if (arg[0] != null) {// 获取成功try {JSONObject data = new JSONObject(json);mfrienddata = data.getJSONArray("data");for (int i = 0; i < mfrienddata.length(); i++) {JSONObject userdata =mfrienddata.getJSONObject(i);String name = userdata.getString("name");String id = userdata.getString("id");if (userdata.has("Ourpalm_ID")) {String ourid =userdata.getString("Ourpalm_ID");} else {// "没有掌趣ID";}}isnext = data.getBoolean("next"); // 是否有下一页isprevious = data.getBoolean("previous"); // 是否有上一页} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}} else {// 获取失败}}
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 判断是那个接口返回的回调,本接口为:FB_GetFriendList |
| arg[0] | String | 好友列表数据,Json 格式 |
{"data" : [{"id" : "1234567890","name" : "testdata","Ourpalm_ID" : "掌趣id","picture" : {"data" : {"is_silhouette" : false,"url" : ""}}}],"previous" : false,"next" : false}
| 参数 | 描述 |
|---|---|
| data | fb好友列表 |
| previous | true 有上一页数据 false 没有上一个数据 |
| next | true 有下一页数据 false 没有下一个数据 |
| data.id | 好友的fb账户id |
| data.name | 好友的fb账户昵称 |
| data.picture | 好友的头像相关数据 |
| data.Ourpalm_ID | 好友在掌趣的用户ID。 有可能取不到。因为用户可能只是授权,但是没有登录 |
获取好友列表的下一页数据,根据好友列表数据内的数据,判断是否需要调用。获取的列表是根据上一次获取的内容获取的。
比如:
程序上一次获取了获取游戏内好友列表,调用本接口,获取的是游戏内好友列表的下一页数据。
程序上一次获取了获取可邀请的好友列表,调用本接口,获取的是可邀请的好友列表的下一页数据。
返回数据格式和获取好友列表的格式相同。
// 获取好友列表内,同样玩当前游戏的好友Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("FB_GetFriendList_next");
回调id:FB_GetFriendList_next
回调数据格式通获取好友列表格式。
获取好友列表的上一页数据,根据好友列表数据内的数据,判断是否需要调用。获取的列表是根据上一次获取的内容获取的。
比如:
程序上一次获取了获取游戏内好友列表,调用本接口,获取的是游戏内好友列表的上一页数据。
程序上一次获取了获取可邀请的好友列表,调用本接口,获取的是可邀请的好友列表的上一页数据。
返回数据格式和获取好友列表的格式相同。
// 获取好友列表内,同样玩当前游戏的好友Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("FB_GetFriendList_previous");
回调id:FB_GetFriendList_previous
回调数据格式通获取好友列表格式。
给没有授权过本游戏的fb好友发送邀请信息,此接口将会调用起fb好友列表,需要用户选择好友发起邀请。 邀请成功以后会返回好友的真实用户ID。
/*** @param id* 接口id* @param Title* 邀请内容标题* @param Msg* 邀请内容* @param fbid* 邀请的好友id。*/Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("Friend_Invitation", "邀请","小红邀请您来玩游戏 ~。~", fb好友id);
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 本接口为:Friend_Invitation |
| arg[0] | String | 邀请内容标题 |
| arg[1] | String | 邀请内容 |
| arg[2] | String | 邀请好友的fb id |
if (id.equals("Friend_Invitation")) {// 邀请功能结束if (arg[0].equals("0")) {String facebookid = arg[1];Toast.makeText(MainActivity.this, "邀请成功", Toast.LENGTH_LONG).show();} else if (arg[0].equals("1")) {Toast.makeText(MainActivity.this, "邀请失败 错误", Toast.LENGTH_LONG).show();} else if (arg[0].equals("2")) {Toast.makeText(MainActivity.this, "邀请失败 用户取消", Toast.LENGTH_LONG).show();}}
邀请成功的情况下arg[1] 为被邀请人真实的fbid
用户调用此接口后,FB链接将会断开,FB获取好友功能将不能使用。主要是
用于断开FB缓存的账号数据。
此功能并不能取消授权,只是相当于注销了本地FB账户的的登录。
Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("FB_Logout");
if (id.equals("FB_Logout")){// 断开成功}
使用谷歌支付,使用line登录,好友系统。
获取line的全部好友。
游戏可以分页获取,接口内传入起始和结束位置。
/*** 获取好友内1-50的好友 。* @param id* 接口id:LineGetFriends* @param arg[0]* 获取好友列表起始位置,从1开始* @param arg[1]* 获取好友结束位置*/Ourpalm_Entry.getInstance(this).Ourpalm_Channel_Spreads("LineGetFriends ","1","50");
| 参数 | 重要性 | 类型 | 描述 |
|---|---|---|---|
| value1 | 必须 | String | 接口id。本接口为 LineGetFriends |
| value2 | 必须 | Strin | 获取好友列表内起始位置 |
| value3 | 必须 | String | 获取好友列表内结束位置 |
回调接口:Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack();
回调id:LineGetFriends
if (id.equals("LineGetFriends")) {Logs.i("info","id="+id+"\r\n"+"data="+arg[0].toString());}
| 参数 | 重要性 | 类型 | 描述 |
|---|---|---|---|
| id | 必须 | String | 接口id。本接口为 LineGetFriends |
| arg[0] | 必须 | String | 好友列表数据,JSon格式 |
arg[0] 内JSon格式介绍
| 参数 | 类型 | 描述 |
|---|---|---|
| status | String | 状态码: 0 成功 非0 失败 |
| statusMessage | String | 错误介绍,成功的时候没有值 |
| count | Int | 好友总数 |
| data | Json数组 | 好友列表数据 |
| data.mid | String | 好友lineid |
| data.displayName | String | 好友line昵称 |
| data.pictureUrl | String | 好友line头像 |
获取line的玩本游戏的好友。
游戏可以分页获取,接口内传入起始和结束位置。
/*** 获取好友内1-50的好友 。* @param id* 接口id:LineGetGameFriends* @param arg[0]* 获取好友列表起始位置,从1开始* @param arg[1]* 获取好友结束位置*/Ourpalm_Entry.getInstance(this).Ourpalm_Channel_Spreads("LineGetGameFriends ","1","50");
| 参数 | 重要性 | 类型 | 描述 |
|---|---|---|---|
| value1 | 必须 | String | 接口id。本接口为 LineGetGameFriends |
| value2 | 必须 | Strin | 获取好友列表内起始位置 |
| value3 | 必须 | String | 获取好友列表内结束位置 |
回调接口:Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack();
回调id:LineGetGameFriends
if (id.equals("LineGetGameFriends")) {Logs.i("info","id="+id+"\r\n"+"data="+arg[0].toString());}
| 参数 | 重要性 | 类型 | 描述 |
|---|---|---|---|
| id | 必须 | String | 接口id。本接口为 LineGetFriends |
| arg[0] | 必须 | String | 好友列表数据,JSon格式 |
arg[0] 内JSon格式介绍
| 参数 | 类型 | 描述 |
|---|---|---|
| status | String | 状态码: 0 成功 非0 失败 |
| statusMessage | String | 错误介绍,成功的时候没有值 |
| count | Int | 好友总数 |
| data | Json数组 | 好友列表数据 |
| data.mid | String | 好友lineid |
| data.displayName | String | 好友line昵称 |
| data.pictureUrl | String | 好友line头像 |
给好友发邀请消息。
邀请的模板由运营在line后台配置,模板内参数也由运营控制,所以分享参数不固定,请根据运营要求填写
HashMap<String, Object> map = new HashMap<String, Object>();map.put("templateId", templateId);//掌趣运营提供map.put("text", "text");map.put("subtext", "subtext");map.put("alttext", "alttext");map.put("linktext", "linktext");map.put("mid", "ua1ecbee80f1c29c99fa237b9cbe87f10");//获取好友接口中获得Ourpalm_Entry.getInstance(this).Ourpalm_Channel_Spreads(map,"LineSendMessage");
| 参数 | 参数类型 | 描述 |
|---|---|---|
| templateId | 固定参数 | 掌趣运营提供的模版ID |
| text | 动态参数(跟随模板) | 掌趣运营提供的模版内的参数,具体作用请运营提供。 |
| subtext | 动态参数(跟随模板) | 掌趣运营提供的模版内的参数,具体作用请运营提供。 |
| alttext | 动态参数(跟随模板) | 掌趣运营提供的模版内的参数,具体作用请运营提供。 |
| linktext | 动态参数(跟随模板) | 掌趣运营提供的模版内的参数,具体作用请运营提供。 |
| mid | 固定参数 | 好友id |
回调接口:Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack();
回调id:LineSendMessage
if (id.equals("LineSendMessage")) {Logs.i("info","id="+id+"\r\n"+"data="+arg[0].toString());}
| 参数 | 重要性 | 类型 | 描述 |
|---|---|---|---|
| id | 必须 | String | 接口id。本接口为 LineSendMessage |
| arg[0] | 必须 | String | 邀请结果 |
arg[0] 内JSon格式介绍
| 参数 | 类型 | 描述 |
|---|---|---|
| status | String | 状态码: 0 成功 非0 失败 |
| statusMessage | String | 错误介绍,成功的时候没有值 |
在用户的TimeLine发布消息
消息的模板由运营在line后台配置,模板内参数也由运营控制,所以分享参数不固定,请根据运营要求填写
HashMap<String, Object> value = new HashMap<String, Object>();value.put("styleType", "A1");模版类型: A1,A2,B1,B2 掌趣运营提供。value.put("feedNo","1"); 模版的id,掌趣运营提供value.put("thumbnail_url","//content.gamebean.com/docImage/1460109606793.png");图片的url,游戏提供value.put("thumbnail_width", "256");图片宽度 游戏提供value.put("thumbnail_height", "256");图片高度 游戏提供value.put("postText", "postText");value.put("titleText", "titleText");value.put("mainText", "mainText");value.put("subText", "subText");value.put("dynamicobjs_object", "100");Ourpalm_Entry.getInstance(this).Ourpalm_Channel_Spreads(value,"LineSendTimeLine");
| 参数 | 参数类型 | 描述 |
|---|---|---|
| styleType | 固定参数 | 模版类型: A1,A2,B1,B2 掌趣运营提供。 |
| feedNo | 固定参数 | 模版的id,掌趣运营提供。 |
| thumbnail_url | 动态参数(跟随模板) | 掌趣运营提供的模版内的参数,具体作用请运营提供。 |
| thumbnail_width | 动态参数(跟随模板) | 掌趣运营提供的模版内的参数,具体作用请运营提供。 |
| thumbnail_height | 动态参数(跟随模板) | 掌趣运营提供的模版内的参数,具体作用请运营提供。 |
| postText | 动态参数(跟随模板) | 掌趣运营提供的模版内的参数,具体作用请运营提供。 |
| titleText | 动态参数(跟随模板) | 掌趣运营提供的模版内的参数,具体作用请运营提供。 |
| mainText | 动态参数(跟随模板) | 掌趣运营提供的模版内的参数,具体作用请运营提供。 |
| subText | 动态参数(跟随模板) | 掌趣运营提供的模版内的参数,具体作用请运营提供。 |
| dynamicobjs_object | 动态参数(跟随模板) | 掌趣运营提供的模版内的参数,具体作用请运营提供。 |
回调接口:Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack();
回调id:LineSendTimeLine
if (id.equals("LineSendTimeLine")) {Logs.i("info","id="+id+"\r\n"+"data="+arg[0].toString());}
| 参数 | 重要性 | 类型 | 描述 |
|---|---|---|---|
| id | 必须 | String | 接口id。本接口为 LineSendMessage |
| arg[0] | 必须 | String | 邀请结果 |
arg[0] 内JSon格式介绍
| 参数 | 类型 | 描述 |
|---|---|---|
| status | String | 状态码: 0 成功 非0 失败 |
| statusMessage | String | 错误介绍,成功的时候没有值 |
使用谷歌支付,带FB功能。
欧美SDK,使用fb获取好友,邀请相关功能的时候, 需要判断当前是否使用的facebook登录。如果当前用户选择的facebook登录才可以使用fb获取好友,邀请相关功能。
判断方法:登录成功以后会返回 “userPlatformId”字段,当前字段为0231的时候是facebook登录
分享文本或者链接内容到FB。
/*** 分享功能** @param value1* share 分享功能固定参数* @param value2* 分享连接的title* @param value3* 分享内容的介绍* @param value4* 分享的连接* @param value5* 分享的图标。 (可以不填,默认为网页缩略图)*/Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("share","THE KING OF FIGHTERS'98UM OL", "内容", "http://chs.98kof.game-bean.com/");
| 参数 | 重要性 | 类型 | 描述 |
|---|---|---|---|
| value1 | 必须 | String | 接口id。本接口为 share |
| value2 | 必须 | String | 分享内容Title,可以为空字符串”” |
| value3 | 必须 | String | 分享内容,可以为空字符串”” |
| value4 | 必须 | String | 分享链接,可以为空字符串”” |
| value5 | 可选 | String | 分享图标链接,参数可选 |
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubif (id.equals("PhotoShare")) {// 分享功能结束if (arg[0].equals("0")) {Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_LONG).show();} else if (arg[0].equals("1")) {Toast.makeText(MainActivity.this, "分享失败 错误", Toast.LENGTH_LONG).show();} else if (arg[0].equals("2")) {Toast.makeText(MainActivity.this, "分享失败 用户取消", Toast.LENGTH_LONG).show();}}}}
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 判断是那个接口返回的回调,本接口为:PhotoShare |
| arg[0] | String | 0 分享成功 1 分享失败,未知错误 2 分享失败,用户取消分享 |
分享图片内容到FB。 使用此功能,用户设备上必须有FB客户端,不然分享失败。
/*** 分享功能** @param value1* share 分享功能固定参数* @param value2* 分享图片的存储路径,全路径*/Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("PhotoShare",imagepath);
| 参数 | 重要性 | 类型 | 描述 |
|---|---|---|---|
| value1 | 必须 | String | 接口id。本接口为 PhotoShare |
| value2 | 必须 | String | 分享图片的本地存储全路径 |
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubif (id.equals("PhotoShare")) {// 分享功能结束if (arg[0].equals("0")) {Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_LONG).show();} else if (arg[0].equals("1")) {Toast.makeText(MainActivity.this, "分享失败 错误", Toast.LENGTH_LONG).show();} else if (arg[0].equals("2")) {Toast.makeText(MainActivity.this, "分享失败 用户取消", Toast.LENGTH_LONG).show();}}}}
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 判断是那个接口返回的回调,本接口为:PhotoShare |
| arg[0] | String | 0 分享成功 1 分享失败,未知错误 2 分享失败,用户取消分享 |
用于获取Facebook好友列表内玩本游戏的用户列表。需要根据返回值内的数据,确定是否有上一页或者下一页,然后调用获取上一页下一页数据接口。
// 获取好友列表内,同样玩当前游戏的好友。Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("FB_GetFriendList");
if(id.equals("FB_GetFriendList")){// 分享功能结束if (arg[0] != null) {// 获取成功try {JSONObject data = new JSONObject(json);mfrienddata = data.getJSONArray("data");for (int i = 0; i < mfrienddata.length(); i++) {JSONObject userdata =mfrienddata.getJSONObject(i);String name = userdata.getString("name");String id = userdata.getString("id");if (userdata.has("Ourpalm_ID")) {String ourid =userdata.getString("Ourpalm_ID");} else {// "没有掌趣ID";}}isnext = data.getBoolean("next"); // 是否有下一页isprevious = data.getBoolean("previous"); // 是否有上一页} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}} else {// 获取失败}}
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 判断是那个接口返回的回调,本接口为:FB_GetFriendList |
| arg[0] | String | 好友列表数据,Json 格式 |
{"data" : [{"id" : "1234567890","name" : "testdata","Ourpalm_ID" : "掌趣id","picture" : {"data" : {"is_silhouette" : false,"url" : ""}}}],"previous" : false,"next" : false}
| 参数 | 描述 |
|---|---|
| data | fb好友列表 |
| previous | true 有上一页数据 false 没有上一个数据 |
| next | true 有下一页数据 false 没有下一个数据 |
| data.id | 好友的fb账户id |
| data.name | 好友的fb账户昵称 |
| data.picture | 好友的头像相关数据 |
| data.Ourpalm_ID | 好友在掌趣的用户ID。 有可能取不到。因为用户可能只是授权,但是没有登录 |
获取好友列表的下一页数据,根据好友列表数据内的数据,判断是否需要调用。获取的列表是根据上一次获取的内容获取的。
比如:
程序上一次获取了获取游戏内好友列表,调用本接口,获取的是游戏内好友列表的下一页数据。
程序上一次获取了获取可邀请的好友列表,调用本接口,获取的是可邀请的好友列表的下一页数据。
返回数据格式和获取好友列表的格式相同。
// 获取好友列表内,同样玩当前游戏的好友Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("FB_GetFriendList_next");
回调id:FB_GetFriendList_next
回调数据格式通获取好友列表格式。
获取好友列表的上一页数据,根据好友列表数据内的数据,判断是否需要调用。获取的列表是根据上一次获取的内容获取的。
比如:
程序上一次获取了获取游戏内好友列表,调用本接口,获取的是游戏内好友列表的上一页数据。
程序上一次获取了获取可邀请的好友列表,调用本接口,获取的是可邀请的好友列表的上一页数据。
返回数据格式和获取好友列表的格式相同。
// 获取好友列表内,同样玩当前游戏的好友Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("FB_GetFriendList_previous");
回调id:FB_GetFriendList_previous
回调数据格式通获取好友列表格式。
给没有授权过本游戏的fb好友发送邀请信息,此接口将会调用起fb好友列表,需要用户选择好友发起邀请。 邀请成功以后会返回好友的真实用户ID。
/*** @param id* 接口id* @param Title* 邀请内容标题* @param Msg* 邀请内容* @param fbid* 邀请的好友id。*/Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("Friend_Invitation", "邀请","小红对 " + name + "说“ 大爷常来玩哦 ~。~ ”", fb好友id);
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 本接口为:Friend_Invitation |
| arg[0] | String | 邀请内容标题 |
| arg[1] | String | 邀请内容 |
| arg[2] | String | 邀请好友的fb id |
if (id.equals("Friend_Invitation")) {// 邀请功能结束if (arg[0].equals("0")) {String facebookid = arg[1];Toast.makeText(MainActivity.this, "邀请成功", Toast.LENGTH_LONG).show();} else if (arg[0].equals("1")) {Toast.makeText(MainActivity.this, "邀请失败 错误", Toast.LENGTH_LONG).show();} else if (arg[0].equals("2")) {Toast.makeText(MainActivity.this, "邀请失败 用户取消", Toast.LENGTH_LONG).show();}}
邀请成功的情况下arg[1] 为被邀请人真实的fbid
用户调用此接口后,FB链接将会断开,FB获取好友功能将不能使用。主要是
用于断开FB缓存的账号数据。
此功能并不能取消授权,只是相当于注销了本地FB账户的的登录。
Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("FB_Logout");
if (id.equals("FB_Logout")){// 断开成功}
游戏调用此接口后,可以返回Google商品id对应的商品信息(商品ID、商品价格、商品货币单位、商品title、商品描述及以微单位显示的商品价格),注意需要游戏传入google后台配置的商品id。
/*** 获取Google商品信息** @param id* SkuDetails 获取Google商品信息固定参数* @param value1* google商品id1* @param value2* google商品id2*/Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("SkuDetails","ubi.heroes.ad60", "ubi.heroes.ad60");
注意:可以获取多个google商品id 对应的商品信息。
if (id.equals("SkuDetails")) {Logs.i("info", "SkuDetails sku_list =" + arg[0]);if (arg[0].equals("")) {// 获取道具列表失败Toast.makeText(MainActivity.this, "获取道具信息功能失败", Toast.LENGTH_LONG).show();} else {// 输出道具列表信息Toast.makeText(MainActivity.this, "获取道具信息功能成功", Toast.LENGTH_LONG).show();try {JSONArray sku_list = new JSONArray(arg[0]);for (int i = 0; i < sku_list.length(); i++) {JSONObject sku = sku_list.getJSONObject(i);Logs.i("info"," sku productId = " + sku.getString("productId") + " price = " + sku.getString("price")+ " title = " + sku.getString("title") + " type = " + sku.getString("type")+ " priceCurrencyCode =" + sku.getString("priceCurrencyCode")+ " description = " + sku.getString("description")+ " priceAmountMicros =" + sku.getLong("priceAmountMicros"));} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();};}}
| 参数 | 描述 |
|---|---|
| sku | google商品信息列表 |
| sku.getString(“productId”) | google 商品id |
| sku.getString(“price”) | google 商品价格 |
| sku.getString(“title”) | google 商品title |
| sku.getString(“priceCurrencyCode”) | google 商品货币单位 |
| sku.getString(“description”) | google 商品描述 |
| sku.getString(“priceAmountMicros”) | google 以微单位显示的商品价格,其中 1,000,000 个微单位等于 1 个单位的货币。例如,如果 price 为 “€7.99”,则 price_amount_micros 为 “7990000” |
游戏调用此接口后,可以返回Google订阅商品id对应的商品信息(商品ID、商品价格、商品货币单位、商品title、商品描述及以微单位显示的商品价格),注意需要游戏传入google后台配置的订阅商品id。
/*** 获取Google商品信息** @param id* SubsSkuDetails 获取Google商品信息固定参数* @param value1* google商品id1* @param value2* google商品id2*/Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("SubsSkuDetails", "ubi.heroes.ad9.99e");
注意:可以获取多个google订阅商品id 对应的商品信息。
if (id.equals("SubsSkuDetails")) {Logs.i("info", "SubsSkuDetails sku_list =" + arg[0]);if (arg[0].equals("")) {// 获取道具列表失败Toast.makeText(MainActivity.this, "获取道具信息功能失败", Toast.LENGTH_LONG).show();} else {// 输出道具列表信息Toast.makeText(MainActivity.this, "获取道具信息功能成功", Toast.LENGTH_LONG).show();try {JSONArray sku_list = new JSONArray(arg[0]);for (int i = 0; i < sku_list.length(); i++) {JSONObject sku = sku_list.getJSONObject(i);Logs.i("info"," sku productId = " + sku.getString("productId") + " price = " + sku.getString("price")+ " title = " + sku.getString("title") + " type = " + sku.getString("type")+ " priceCurrencyCode =" + sku.getString("priceCurrencyCode")+ " description = " + sku.getString("description")+ " priceAmountMicros =" + sku.getLong("priceAmountMicros"));} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();};}}
| 参数 | 描述 |
|---|---|
| sku | google订阅商品信息列表 |
| sku.getString(“productId”) | google 商品id |
| sku.getString(“price”) | google 商品价格 |
| sku.getString(“title”) | google 商品title |
| sku.getString(“priceCurrencyCode”) | google 商品货币单位 |
| sku.getString(“description”) | google 商品描述 |
| sku.getString(“priceAmountMicros”) | google 以微单位显示的商品价格,其中 1,000,000 个微单位等于 1 个单位的货币。例如,如果 price 为 “€7.99”,则 price_amount_micros 为 “7990000” |
游戏调用此接口后,可以判断是否安装或启动google服务。
Ourpalm_Entry.getInstance(MainActivity.mMainActivity). Ourpalm_Channel_Spreads("GoogleAchievements_IsGooglePlayServicesAvailable");
if (id.equals("GoogleAchievements_IsGooglePlayServicesAvailable")) {Logs.i("info", " Ourpalm_Spreads GoogleAchievements_IsGooglePlayServicesAvailable"+ " arg[0]= " + arg[0]);if (arg[0].equals("0")) {Toast.makeText(MainActivity.this, "goolge服务已开启", Toast.LENGTH_LONG).show();} else {Toast.makeText(MainActivity.this, "google服务未安装或未开启", Toast.LENGTH_LONG).show();}}
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 判断是那个接口返回的回调,本接口为:GoogleAchievements_IsGooglePlayServicesAvailable |
| arg[0] | String | 0:已开启 1:未安装或未开启 |
账号登录成功后调用此接口,可以判断是否绑定第三方账号。
String checkFlag = Ourpalm_Entry.getInstance( Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("us_checkBindAccount");
checkFlag返回”0”即表示没有绑定第三方账号,返回”1”即表示已绑定第三方账号。
账号登录成功后调用此接口,可以判断是否绑定邮箱账号。
String checkFlag = Ourpalm_Entry.getInstance( Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("us_checkBindEmailAccount");
checkFlag返回”0”即表示没有绑定邮箱账号,返回”1”即表示已绑定邮箱账号。
账号登录成功后调用此接口,可以打开绑定第三方账号页面。
Ourpalm_Entry.getInstance( Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("us_BindAccount");
/ 特殊功能回调接口。Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubLogs.i("info", " Ourpalm_Spreads id = " + id);if (id.equals("Ucenter_BindAccount_Success")) {Logs.i("info", "bind account success");Logs.i("info", "arg[0]"+arg[0]);//arg[0] 为平台标识:facebook,google,twitter,vkLogs.i("info", "arg[1]"+arg[1]);//arg[1]为平台返回用户参数 Json/**facebook范例:{"token_for_business":"AbwRsy594dBTNzKJ","name":"指针","picture":{"data":{"height":600,"is_silhouette":false,"url":"https:\/\/platform-lookaside.fbsbx.com\/platform\/profilepic\/?asid=1801576980023900&gaming_photo_type=unified_picture&ext=1639723523&hash=AeSpx1PW3H4p6XbHTs4","width":600}},"id":"1801576980023900","originalProductUserId":"1801576980023900"}google 范例:{"uid":"116113243026395000456","name":"刘利男"}twitter 范例:{"userId":"1438080497515515908","name":"leecm","screen_name":"leecm_test"}vk 范例:没有返回用户名字,注意判断建议json对象 取key:name**/Toast.makeText(MainActivity.this, "账号绑定成功"+arg[0], Toast.LENGTH_LONG).show();} else if (id.equals("Ucenter_BindAccount_Fail")) {//arg[0] 为平台标识:facebook,google,twitter,vkToast.makeText(MainActivity.this, "账号绑定失败"+arg[0], Toast.LENGTH_LONG).show();}else if (id.equals("Ucenter_unBindAccount_Fail")) {//arg[0] 为平台标识:facebook,google,twitter,vkLogs.i("info", "arg[0]"+arg[0]);Toast.makeText(MainActivity.this, "解绑失败"+arg[0], Toast.LENGTH_LONG).show();}else if (id.equals("Ucenter_unBindAccount_Success")){//arg[0] 为平台标识:facebook,google,twitter,vkLogs.i("info", "arg[0]"+arg[0]);Toast.makeText(MainActivity.this, "解绑成功"+arg[0], Toast.LENGTH_LONG).show();}});
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 判断是那个接口返回的回调 Ucenter_BindAccount_Success 表示绑定成功 Ucenter_BindAccount_Fail 表示绑定失败 Ucenter_unBindAccount_Success 表示解绑成功 Ucenter_unBindAccount_Fail 表示解绑失败 |
| arg[0] | String | 具体含义参见上面的注释 |
| arg[1] | String | 具体含义参见上面的注释 |
该接口暂时只给coc用,sdk登录成功后调用此接口,游戏客户端传入掌趣uid及其它信息,sdk去用户中心校验此uid是否存在,如果校验成功,sdk会返回此uid对应的登录数据,同时保存本地快登标识,后续再次调用sdk登录登录时,SDK拿新的本地快登标识进行登录。
如果不存在,会返回校验的错误信息。
try {JSONObject checkDataJson = new JSONObject();String sign = "";String userId = "1100010000000000000000000000000011111111";//40位掌趣uidlong timestamp = System.currentTimeMillis();//精确到毫秒String secretKey = "aaaaaa";//掌趣给该产品分配的secret_keycheckDataJson.put("userId", userId);checkDataJson.put("timestamp", timestamp);String originalString = userId + timestamp + secretKey;sign = DigestUtils.md5Hex(originalString);checkDataJson.put("sign", sign);Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("us_checkLoginUserId", checkDataJson.toString());} catch (Exception e) {}
| 参数 | 重要性 | 类型 | 描述 |
|---|---|---|---|
| value1 | 必须 | String | 接口id。本接口为 us_checkLoginUserId |
| checkDataJson.userId | 必须 | String | 40位掌趣uid |
| checkDataJson.timestamp | 必须 | String | 时间戳 |
| checkDataJson.sign | 必须 | String | 签名 |
签名规则:
//product.secret_key为掌趣后台分配的产品秘钥
sign = md5hex(userId + timestamp + product.secret_key)
// 特殊功能回调接口。Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubLogs.i("info", " Ourpalm_Spreads id = " + id);if (id.equals("us_checkLoginUserId")) {Logs.i("info", "arg[0]"+arg[0]);try {JSONObject checkResultJson = new JSONObject(arg[0]);String status = checkResultJson.getString("status");String code = checkResultJson.getString("code");String desc = checkResultJson.getString("desc");String data = checkResultJson.getString("data");if (status.equals("1")) {//验证成功,checkResultJson.data即为当前校验uid对应的登录数据,格式同登录成功返回的登录数据。Toast.makeText(MainActivity.this,"userId验证成功, arg[0] ="+arg[0], Toast.LENGTH_LONG).show();} else {//验证失败,checkResultJson.code及desc分别为掌趣用户中心返回的错误码及错误码解释。Toast.makeText(MainActivity.this,"userId验证失败, arg[0] ="+arg[0], Toast.LENGTH_LONG).show();}} catch (Exception e) {}}}});
请登录成功后调用此接口,可以打开邮箱绑定界面,测试时需要二次打包。
如果绑定成功,会通过异步回调返回当前绑定的邮箱账号。
注意:
游戏客户可以解析登录成功回调返回的data数据来判断当前账号是否绑定邮箱,
这个data数据是个json,可以参考下面java代码解析”emailAccount”字段,
这个字段要是为空,就表示当前账号没有绑定邮箱,
要是有值,对应的值就是当前绑定的邮箱账号。
具体解析代码可参考下面的代码:
public void Ourpalm_LoginSuccess(String tokenId, String data) {// TODO Auto-generated method stub// 游戏必须实现//Logs.i("info", "MainActivity, tokenId == " + tokenId + ", user data == " + data);String emailAccount = "";try {JSONObject json = new JSONObject(data);JSONObject dataJson = new JSONObject(json.getString("data"));if (dataJson.has("emailAccount")) {emailAccount = dataJson.getString("emailAccount");}Logs.i("info", "MainActivity, emailAccount = " + emailAccount);} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("ShowBindEmail");
| 参数 | 重要性 | 类型 | 描述 |
|---|---|---|---|
| value1 | 必须 | String | 接口id。本接口为 ShowBindEmail |
// 特殊功能回调接口。Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubLogs.i("info", " Ourpalm_Spreads id = " + id);if (id.equals("ShowBindEmail")) {Logs.i("info", "arg[0] ="+arg[0]);try {JSONObject checkResultJson = new JSONObject(arg[0]);//绑定成功status = "1", 绑定失败status = "0"String status = checkResultJson.getString("status");//绑定成功code = "",绑定失败返回对应的错误码String code = checkResultJson.getString("code");//绑定成功desc = "",绑定失败返回对应的错误解释String desc = checkResultJson.getString("desc");//绑定成功emailName为对应的邮箱账号名,绑定失败emailName为空串String emailName = checkResultJson.getString("emailName");if (status.equals("1")) {Toast.makeText(MainActivity.this,"邮箱绑定成功, arg[0] ="+arg[0], Toast.LENGTH_LONG).show();} else {Toast.makeText(MainActivity.this,"邮箱绑定失败, arg[0] ="+arg[0], Toast.LENGTH_LONG).show();}} catch (Exception e) {}}}});
使用谷歌支付,带FB功能。
分享文本或者链接内容到FB。
/*** 分享功能** @param value1* share 分享功能固定参数* @param value2* 分享连接的title* @param value3* 分享内容的介绍* @param value4* 分享的连接* @param value5* 分享的图标。 (可以不填,默认为网页缩略图)*/Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("share","THE KING OF FIGHTERS'98UM OL", "内容", "http://chs.98kof.game-bean.com/");
| 参数 | 重要性 | 类型 | 描述 |
|---|---|---|---|
| value1 | 必须 | String | 接口id。本接口为 share |
| value2 | 必须 | String | 分享内容Title,可以为空字符串”” |
| value3 | 必须 | String | 分享内容,可以为空字符串”” |
| value4 | 必须 | String | 分享链接,可以为空字符串”” |
| value5 | 可选 | String | 分享图标链接,参数可选 |
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubif (id.equals("PhotoShare")) {// 分享功能结束if (arg[0].equals("0")) {Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_LONG).show();} else if (arg[0].equals("1")) {Toast.makeText(MainActivity.this, "分享失败 错误", Toast.LENGTH_LONG).show();} else if (arg[0].equals("2")) {Toast.makeText(MainActivity.this, "分享失败 用户取消", Toast.LENGTH_LONG).show();}}}}
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 判断是那个接口返回的回调,本接口为:PhotoShare |
| arg[0] | String | 0 分享成功 1 分享失败,未知错误 2 分享失败,用户取消分享 |
分享图片内容到FB。 使用此功能,用户设备上必须有FB客户端,不然分享失败。
/*** 分享功能** @param value1* share 分享功能固定参数* @param value2* 分享图片的存储路径,全路径*/Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("PhotoShare",imagepath);
| 参数 | 重要性 | 类型 | 描述 |
|---|---|---|---|
| value1 | 必须 | String | 接口id。本接口为 PhotoShare |
| value2 | 必须 | String | 分享图片的本地存储全路径 |
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubif (id.equals("PhotoShare")) {// 分享功能结束if (arg[0].equals("0")) {Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_LONG).show();} else if (arg[0].equals("1")) {Toast.makeText(MainActivity.this, "分享失败 错误", Toast.LENGTH_LONG).show();} else if (arg[0].equals("2")) {Toast.makeText(MainActivity.this, "分享失败 用户取消", Toast.LENGTH_LONG).show();}}}}
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 判断是那个接口返回的回调,本接口为:PhotoShare |
| arg[0] | String | 0 分享成功 1 分享失败,未知错误 2 分享失败,用户取消分享 |
用于获取Facebook好友列表内玩本游戏的用户列表。需要根据返回值内的数据,确定是否有上一页或者下一页,然后调用获取上一页下一页数据接口。
// 获取好友列表内,同样玩当前游戏的好友。Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("FB_GetFriendList");
if(id.equals("FB_GetFriendList")){// 分享功能结束if (arg[0] != null) {// 获取成功try {JSONObject data = new JSONObject(json);mfrienddata = data.getJSONArray("data");for (int i = 0; i < mfrienddata.length(); i++) {JSONObject userdata =mfrienddata.getJSONObject(i);String name = userdata.getString("name");String id = userdata.getString("id");if (userdata.has("Ourpalm_ID")) {String ourid =userdata.getString("Ourpalm_ID");} else {// "没有掌趣ID";}}isnext = data.getBoolean("next"); // 是否有下一页isprevious = data.getBoolean("previous"); // 是否有上一页} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}} else {// 获取失败}}
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 判断是那个接口返回的回调,本接口为:FB_GetFriendList |
| arg[0] | String | 好友列表数据,Json 格式 |
{"data" : [{"id" : "1234567890","name" : "testdata","Ourpalm_ID" : "掌趣id","picture" : {"data" : {"is_silhouette" : false,"url" : ""}}}],"previous" : false,"next" : false}
| 参数 | 描述 |
|---|---|
| data | fb好友列表 |
| previous | true 有上一页数据 false 没有上一个数据 |
| next | true 有下一页数据 false 没有下一个数据 |
| data.id | 好友的fb账户id |
| data.name | 好友的fb账户昵称 |
| data.picture | 好友的头像相关数据 |
| data.Ourpalm_ID | 好友在掌趣的用户ID。 有可能取不到。因为用户可能只是授权,但是没有登录 |
获取好友列表的下一页数据,根据好友列表数据内的数据,判断是否需要调用。获取的列表是根据上一次获取的内容获取的。
比如:
程序上一次获取了获取游戏内好友列表,调用本接口,获取的是游戏内好友列表的下一页数据。
程序上一次获取了获取可邀请的好友列表,调用本接口,获取的是可邀请的好友列表的下一页数据。
返回数据格式和获取好友列表的格式相同。
// 获取好友列表内,同样玩当前游戏的好友Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("FB_GetFriendList_next");
回调id:FB_GetFriendList_next
回调数据格式通获取好友列表格式。
获取好友列表的上一页数据,根据好友列表数据内的数据,判断是否需要调用。获取的列表是根据上一次获取的内容获取的。
比如:
程序上一次获取了获取游戏内好友列表,调用本接口,获取的是游戏内好友列表的上一页数据。
程序上一次获取了获取可邀请的好友列表,调用本接口,获取的是可邀请的好友列表的上一页数据。
返回数据格式和获取好友列表的格式相同。
// 获取好友列表内,同样玩当前游戏的好友Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("FB_GetFriendList_previous");
回调id:FB_GetFriendList_previous
回调数据格式通获取好友列表格式。
给没有授权过本游戏的fb好友发送邀请信息,此接口将会调用起fb好友列表,需要用户选择好友发起邀请。 邀请成功以后会返回好友的真实用户ID。
/*** @param id* 接口id* @param Title* 邀请内容标题,此标题展示在好友列表界面* @param Msg* 邀请内容*/Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("Friend_Invitation", "邀请","小红邀请您来玩游戏 ~。~ ");
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 本接口为:Friend_Invitation |
| arg[0] | String | 邀请内容标题 |
| arg[1] | String | 邀请内容 |
if (id.equals("Friend_Invitation")) {// 邀请功能结束if (arg[0].equals("0")) {String facebookid = arg[1];Toast.makeText(MainActivity.this, "邀请成功", Toast.LENGTH_LONG).show();} else if (arg[0].equals("1")) {Toast.makeText(MainActivity.this, "邀请失败 错误", Toast.LENGTH_LONG).show();} else if (arg[0].equals("2")) {Toast.makeText(MainActivity.this, "邀请失败 用户取消", Toast.LENGTH_LONG).show();}}
邀请成功的情况下arg[1] 为被邀请人真实的fbid
用户调用此接口后,FB链接将会断开,FB获取好友功能将不能使用。主要是
用于断开FB缓存的账号数据。
此功能并不能取消授权,只是相当于注销了本地FB账户的的登录。
Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("FB_Logout");
if (id.equals("FB_Logout")){// 断开成功}
用于获取fb登录授权信息,使用此功能需要在初始化结束以后增加特殊回调。
Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("FB_Authorize");
if (id.equals("FB_Authorize")) {if (arg[0].equals("")) {Toast.makeText(MainActivity.this, "FB授权失败", Toast.LENGTH_LONG).show();} else {Logs.i("info", " Ourpalm_Spreads FB_Authorize ourpalm_token = " + arg[0] +", userinfo =" + arg[1]);Toast.makeText(MainActivity.this, "FB授权成功", Toast.LENGTH_LONG).show();}}
失败时,arg[0]返回空串。
成功回调数据格式:
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 本接口为:FB_Authorize |
| arg[0] | String | token id |
| arg[1] | String | FB授权后的用户信息数据 |
arg[1]为json格式,json格式举例:
{"id": "120231000000000000000000Abw6FLBNsrBCsKBL","returnJson": {"id": "1479946412081939","picture": {"data": {"is_silhouette": false,"url": "https://fb-s-d-a.akamaihd.net/h-ak-fbx/v/t1.0-1/c53.14.176.176/s50x50/165387_105172806225980_2317645_n.jpg?oh=31e6646b620e174f2e4d713139c2d016&oe=5A7B0D93&__gda__=1513807563_5eedfdbfea779fc0434ff7ae05438c45"}},"token_for_business": "Abw6FLBNsrBCsKBL","originalProductUserId": "1479946412081939","name": "李**"},"userName": "","currentUserPWD": "","email": ""}
其中,returnJson字段中,id字段即为fb授权成功后的fb id。
使用账号登录、快登、Google登陆、FB
支持简体中文、英语、泰语、印尼语
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
SDK内部切换国际化语言所使用
Ourpalm_LocaleUtils.updateLocale(Context, Locale);
| 参数名 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| context | 必传 | Context | 传入上下文 |
| locale | 必传 | Locale | 设置地域语言 |
Ourpalm_LocaleUtils.updateLocale(MainActivity.this,Ourpalm_LocaleUtils.LOCALE_CHINESE);
| Locale参数名 | 语言及对应的国家 |
|---|---|
| LOCALE_CHINESE | 简体中文_中国 |
| LOCALE_CHINESE_HK | 繁体中文_中国香港 |
| LOCALE_PH | 英语_菲律宾 |
| LOCALE_SG | 英语_新加坡 |
| LOCALE_GB | 英语_英国 |
| LOCALE_English | 英语_其他地区 |
| LOCALE_TL | 菲律宾语_菲律宾 |
| LOCALE_IND | 印尼语_印尼 |
| LOCALE_TH | 泰语_泰国 |
| LOCALE_MY | 简体中文_马来西亚 |
| LOCALE_RS | 俄语_俄罗斯 |
| LOCALE_DE | 德语_德国 |
| LOCALE_FR | 法语_法国 |
| LOCALE_ES | 西班牙语_西班牙 |
| LOCALE_PL | 波兰语_波兰 |
| LOCALE_BR | 葡萄牙语_巴西 |
| LOCALE_IT | 意大利语_意大利 |
分享文本或者链接内容到FB。
/*** 分享功能** @param value1* share 分享功能固定参数* @param value2* 分享连接的title* @param value3* 分享内容的介绍* @param value4* 分享的连接* @param value5* 分享的图标。 (可以不填,默认为网页缩略图)*/Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("share","THE KING OF FIGHTERS'98UM OL", "内容", "http://chs.98kof.game-bean.com/");
| 参数 | 重要性 | 类型 | 描述 |
|---|---|---|---|
| value1 | 必须 | String | 接口id。本接口为 share |
| value2 | 必须 | String | 分享内容Title,可以为空字符串”” |
| value3 | 必须 | String | 分享内容,可以为空字符串”” |
| value4 | 必须 | String | 分享链接,可以为空字符串”” |
| value5 | 可选 | String | 分享图标链接,参数可选 |
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubif (id.equals("PhotoShare")) {// 分享功能结束if (arg[0].equals("0")) {Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_LONG).show();} else if (arg[0].equals("1")) {Toast.makeText(MainActivity.this, "分享失败 错误", Toast.LENGTH_LONG).show();} else if (arg[0].equals("2")) {Toast.makeText(MainActivity.this, "分享失败 用户取消", Toast.LENGTH_LONG).show();}}}}
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 判断是那个接口返回的回调,本接口为:PhotoShare |
| arg[0] | String | 0 分享成功 1 分享失败,未知错误 2 分享失败,用户取消分享 |
分享图片内容到FB。 使用此功能,用户设备上必须有FB客户端,不然分享失败。
/*** 分享功能** @param value1* share 分享功能固定参数* @param value2* 分享图片的存储路径,全路径*/Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("PhotoShare",imagepath);
| 参数 | 重要性 | 类型 | 描述 |
|---|---|---|---|
| value1 | 必须 | String | 接口id。本接口为 PhotoShare |
| value2 | 必须 | String | 分享图片的本地存储全路径 |
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubif (id.equals("PhotoShare")) {// 分享功能结束if (arg[0].equals("0")) {Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_LONG).show();} else if (arg[0].equals("1")) {Toast.makeText(MainActivity.this, "分享失败 错误", Toast.LENGTH_LONG).show();} else if (arg[0].equals("2")) {Toast.makeText(MainActivity.this, "分享失败 用户取消", Toast.LENGTH_LONG).show();}}}}
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 判断是那个接口返回的回调,本接口为:PhotoShare |
| arg[0] | String | 0 分享成功 1 分享失败,未知错误 2 分享失败,用户取消分享 |
给没有授权过本游戏的fb好友发送邀请信息,此接口将会调用起fb好友列表,需要用户选择好友发起邀请。 邀请成功以后会返回好友的真实用户ID。
/*** @param id* 接口id* @param Title* 邀请内容标题* @param Msg* 邀请内容*/Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("Friend_Invitation", "邀请","小红对说“ 常来玩哦 ~。~ ”");
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 本接口为:Friend_Invitation |
| arg[0] | String | 邀请内容标题 |
| arg[1] | String | 邀请内容 |
if (id.equals("Friend_Invitation")) {// 邀请功能结束if (arg[0].equals("0")) {String facebookid = arg[1];Toast.makeText(MainActivity.this, "邀请成功", Toast.LENGTH_LONG).show();} else if (arg[0].equals("1")) {Toast.makeText(MainActivity.this, "邀请失败 错误", Toast.LENGTH_LONG).show();} else if (arg[0].equals("2")) {Toast.makeText(MainActivity.this, "邀请失败 用户取消", Toast.LENGTH_LONG).show();}}
邀请成功的情况下arg[1] 为被邀请人真实的fbid
<meta-dataandroid:name="our_facebook_friends"android:value="false" />//在 AndroidManifest.xml 里面加一个这个配置
功能说明 :
谷歌游戏的成就和打开成就弹窗
解锁成就, 谷歌成就key在谷歌后台获取。 样式举例:”CgkIopmSrtYdEAIQAw”
接口定义 :
/*** @param value0 解锁成就固定值* @param value1 谷歌成就key*/Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("GoogleAchievements_Unlock","成就key");
参数说明:
| 参数名称 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| Value0 | 必传 | String | 接口ID |
| Value1 | 必传 | String | 谷歌成就key |
接口实例:
Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("GoogleAchievements_Unlock","CgkIopmSrtYdEAIQAw");
接口定义 :
/*** @param value0 显示成就弹框固定值*/Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("GoogleAchievements_showAchievements");
参数说明:
| 参数名称 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| Value0 | 必传 | String | 接口ID |
接口实例:
Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("GoogleAchievements_showAchievements");
功能说明 :
接口定义 :
Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("to_GooglePlay");
参数说明:
| 参数名称 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| Value1 | 必传 | String | 接口ID |
接口实例:
Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("to_GooglePlay");
游戏登录成功后调用本接口可以打开系统分享界面,给其它玩家分享邀请内容及邀请码,其它玩家可以通过分享app上的邀请链接拉起或安装游戏包。
注意:游戏必须接入base sdk的onNewIntent 这个生命期接口。
Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads(id, inviteMsg, inviteCode);
参数说明:
| 参数名称 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| id | 必传 | String | 接口id 本接口为:OpenInstall_sendShareInvite |
| inviteMsg | 必传 | String | 邀请内容 |
| inviteCode | 必传 | String | 邀请码 |
接口示例
Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("OpenInstall_sendShareInvite", "test openinstall invite", "testvalue");
其它玩家可以通过分享app上的邀请链接拉起或安装游戏包时,会收到这个回调。其中,arg[0]即为邀请者的邀请码。
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubLogs.i("info", " Ourpalm_Spreads id = " + id);if (id.equals("OpenInstall_InviteData")) {Logs.i("info", " Ourpalm_Spreads OpenInstall_InviteData = " + arg[0]);}}});
主要包含网惮Webview相关接口、google促销代码及推送相关接口。
打开Mocaa News公告页面,这个页面也叫Mocaa横幅。
/*** @param id* 接口id*/Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("Mocaa_showNotice");
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 本接口为:Mocaa_showNotice |
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stub//关闭News公告页面if (id.equals("Mocaa_showNotice")) {Toast.makeText(MainActivity.this, "关闭News公告页面", Toast.LENGTH_LONG).show();}}});
打开CS客服页面
/*** @param id* 接口id*/Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("Mocaa_showCsWeb");
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 本接口为:Mocaa_showCsWeb |
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stub//关闭CS客服页面if (id.equals("Mocaa_showCsWeb")) {Toast.makeText(MainActivity.this, "关闭CS客服页面", Toast.LENGTH_LONG).show();}}});
打开Mocaa全屏横幅
/*** @param id* 接口id*/Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("Mocaa_showMocaaBanner");
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 本接口为:Mocaa_showMocaaBanner |
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stub//关闭全屏横幅页面if (id.equals("Mocaa_showMocaaBanner")) {Toast.makeText(MainActivity.this, "关闭全屏横幅页面", Toast.LENGTH_LONG).show();}}});
打开游戏服务使用协议页面
/*** @param id* 接口id*/Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("Mocaa_openServicePolicyUrl");
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 本接口为:Mocaa_openServicePolicyUrl |
打开个人信息收集协议页面
/*** @param id* 接口id*/Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("Mocaa_openPrivacyPolicyUrl");
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 本接口为:Mocaa_openPrivacyPolicyUrl |
打开指定url的web页面接口
/*** @param id* 接口id* @param webUrl* 页面URL*/Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads(id, webUrl);
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 本接口为:Mocaa_showSpecifyWebPage |
| webUrl | String | webUrl |
Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("Mocaa_showSpecifyWebPage","http://www.baidu.com");
推送通知接收设置
/** 推送接收设置** @param pushAllowS* MOCAA 推送许可 1:同意条款 0:不同意* @param gamePushAllowS* 游戏推送许可 1:同意 0:不同意* @param nightPushAllowS* 夜晚推送许可 1:同意 0:不同意* @param customPushAllowS* 定制推送许可 1:同意 0:不同意*/Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads(id, pushAllowS, gamePushAllowS, nightPushAllowS, customPushAllowS);
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 本接口为:Mocaa_setPushNotification |
| pushAllowS | String | MOCAA 推送许可与否 |
| gamePushAllowS | String | 游戏推送许可与否 |
| nightPushAllowS | String | 夜晚推送许可与否 |
| customPushAllowS | String | 定制推送许可与否 |
Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("Mocaa_setPushNotification", "1", "1", "1", "1");
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubif(id.equals("Mocaa_setPushNotification")) {Toast.makeText(MainActivity.this, "推送接收设置成功", Toast.LENGTH_LONG).show();}
游戏登录成功后调用该接口,根据回调结果判断是否显示google促销奖励按钮。
Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("Mocaa_googlePromotionCode");
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 本接口为:Mocaa_googlePromotionCode |
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubif (id.equals("Mocaa_googlePromotionCode")) {Logs.i("info", "Mocaa_googlePromotionCode arg0 =" + arg[0] + ", arg1 =" + arg[1] +", arg2 =" + arg[2]);if (arg[0] == "1") {Toast.makeText(MainActivity.this, "需要发放促销道具", Toast.LENGTH_LONG).show();} else {Toast.makeText(MainActivity.this, "没有促销道具", Toast.LENGTH_LONG).show();}}}});
回调接口参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 本接口为:Mocaa_googlePromotionCode |
| arg[0] | String | 1 有促销道具 0 没有促销道具 |
| arg[1] | String | 促销道具ID |
| arg[2] | String | 游戏指定的参数,json字符串 |
arg[2]参考事例:
{"game_account_no":46397,"ourpalm_uid":"1104860000000000000000000000000000046397","receipt_data":"{"packageName":"com.webzen.muorigin2.global.google","productId":"promotest1","purchaseTime":1554783492762,"purchaseState":0,"purchaseToken":"ebindggfgckbhehchnjdimja.AO-J1OyTSRxGvuPgYqYiNU1pkiZA-HpjAnBch9ou9YWTy6DmLQuTgu-SHopYgQi5MZkNipiV0Wur3Kw4xDaZn7bZ59u6PrLZEwK0YtaWXDrBUl5XYLPeTWMC30qHwyYpa9fKXtMK9wAW"}", "signature":"F+9zzVolZDK5fmq1/ZI5GWUr6hoPDE3zaHHOisg/wQlXha+lqjZn8TllDi9Cwr4cI+G7BMZNkuGe4vqq3XsoiDwEsvQcTNTwsP31SNuEV4GGAGcFmTCCufcatySJpMYHkMK5prZxbtg0NrTiGlT+/UfIXTI592rIaEIGTDexWsbYIyIvBjAylIoimkA8vfcadjLwx6WRomMxU2UlNWbm1tAIJu4z8OJpQN1YmJDT8Jewt71JMZ3GBiqMPDDuu3O7XgAqxiuDrszNAVF2/gU1VbtAQhmJRlcHqMb2jAcIKx2kcL2CE5F8dE307hy8YUrHp/0IPgk8EQ8iyRxggeFB+Q==","order_id":"","currency_code":"TWD","price":"90.00","store_type":"playstore","country":"cn","language":"zh"}
根据游戏客户端传入的促销道具Id调用此接口消耗该促销道具
Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("Mocaa_ConsumePromotionProduct", "promotest1");
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 本接口为:Mocaa_ConsumePromotionProduct |
| arg[0] | String | 促销道具ID |
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubif (id.equals("Mocaa_ConsumePromotionProduct")) {Logs.i("info", "Mocaa_ConsumePromotionProduct arg0 =" + arg[0]);if (arg[0] == "1") {Toast.makeText(MainActivity.this, "促销道具消耗成功", Toast.LENGTH_LONG).show();} else {Toast.makeText(MainActivity.this, "没有促销消耗失败", Toast.LENGTH_LONG).show();}}}});
解除3rd Party认证和MOCAA账号连接
Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("Mocaa_disconnectAccount");
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 本接口为:Mocaa_disconnectAccount |
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubif (id.equals("Mocaa_disconnectAccount")) {Logs.i("info", "Mocaa_disconnectAccount arg0 =" + arg[0]);if (arg[0] == "1") {Toast.makeText(MainActivity.this, "删除账号成功", Toast.LENGTH_LONG).show();} else {Toast.makeText(MainActivity.this, "删除账号失败", Toast.LENGTH_LONG).show();}}}});
接入昆仑万维SDK,使用昆仑快登作为唯一登录方式。游戏可以调用绑定/继承接口绑定FB/谷歌账号或者继承已经绑定过的FB/谷歌账号,已经绑定过的FB/谷歌账号可以做解绑操作。SDK支持谷歌成就功能,可以激活谷歌成功。
如果是继承,游戏收到继承成功回调以后需要做大退操作。
接口定义
Ourpalm_Entry.getInstance(mActivity).Ourpalm_Channel_Spreads("BindGoogle");
参数说明:
| 参数名称 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| Value1 | 必传 | String | 接口ID |
接口实例:
Ourpalm_Entry.getInstance(mActivity).Ourpalm_Channel_Spreads("BindGoogle");
如果是继承,游戏收到继承成功回调以后需要做大退操作。
接口定义
Ourpalm_Entry.getInstance(mActivity).Ourpalm_Channel_Spreads("BindFacebook");
参数说明:
| 参数名称 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| Value1 | 必传 | String | 接口ID |
接口实例:
Ourpalm_Entry.getInstance(mActivity).Ourpalm_Channel_Spreads("BindFacebook");
接口定义
Ourpalm_Entry.getInstance(mActivity).Ourpalm_Channel_Spreads("RelieveBindGoogle");
参数说明:
| 参数名称 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| Value1 | 必传 | String | 接口ID |
接口实例:
Ourpalm_Entry.getInstance(mActivity).Ourpalm_Channel_Spreads("RelieveBindGoogle");
接口定义
Ourpalm_Entry.getInstance(mActivity).Ourpalm_Channel_Spreads("RelieveBindFacebook");
参数说明:
| 参数名称 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| Value1 | 必传 | String | 接口ID |
接口实例:
Ourpalm_Entry.getInstance(mActivity).Ourpalm_Channel_Spreads("RelieveBindFacebook");
接口定义
Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("GoogleAchievements_Unlock","谷歌分配的成就key");
参数说明:
| 参数名称 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| Value1 | 必传 | String | 接口ID |
| Value2 | 必传 | String | 谷歌分配的成就key |
接口实例:
Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("GoogleAchievements_Unlock","谷歌分配的成就key");
接口定义
Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("GoogleAchievements_showAchievements");
参数说明:
| 参数名称 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| Value1 | 必传 | String | 接口ID |
接口实例:
Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("GoogleAchievements_showAchievements");
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {if (id.equals("BindGoogle")) {/*** arg[0] 为“0” 为操作成功* arg[1] 为“0” 为绑定操作 “1" 为继承操作*/if (arg[0].equals("0")) {if (arg[1].equals("0")) {// 绑定操作Toast.makeText(MainActivity.this, "绑定谷歌成功", Toast.LENGTH_LONG).show();} else {// 继承操作Toast.makeText(MainActivity.this, "继承谷歌成功,需要大退", Toast.LENGTH_LONG).show();}} else {Toast.makeText(MainActivity.this, "绑定继承谷歌失败", Toast.LENGTH_LONG).show();}}else if (id.equals("BindFacebook")) {/*** arg[0] 为“0” 为操作成功* arg[1] 为“0” 为绑定操作 “1" 为继承操作*/if (arg[0].equals("0")) {if (arg[1].equals("0")) {// 绑定操作Toast.makeText(MainActivity.this, "绑定FB成功", Toast.LENGTH_LONG).show();} else {// 继承操作Toast.makeText(MainActivity.this, "继承FB成功,需要大退", Toast.LENGTH_LONG).show();}} else {Toast.makeText(MainActivity.this, "绑定继承FB失败", Toast.LENGTH_LONG).show();}}else if (id.equals("RelieveBindGoogle")) {if (arg[0].equals("0")) {Toast.makeText(MainActivity.this, "解绑谷歌成功", Toast.LENGTH_LONG).show();} else {Toast.makeText(MainActivity.this, "解绑谷歌失败", Toast.LENGTH_LONG).show();}} else if (id.equals("RelieveBindFacebook")){if (arg[0].equals("0")) {Toast.makeText(MainActivity.this, "解绑FB成功", Toast.LENGTH_LONG).show();} else {Toast.makeText(MainActivity.this, "解绑FB失败", Toast.LENGTH_LONG).show();}} else if (id.equals("GoogleAchievements_Unlock")) {if (arg[0].equals("0")) {Toast.makeText(MainActivity.this, "成就解锁成功", Toast.LENGTH_LONG).show();} else {Toast.makeText(MainActivity.this, "成就解锁失败", Toast.LENGTH_LONG).show();}}}}
登录成功以后,游戏服务器需要到掌趣服务器做登录验证。
验证成功后,返回的数据包含当前登录用户的绑定状态。
一下数据客户端也会返回,但是建议使用服务端数据。
{"binddingInfo":[],"bindingMode":"2","currentUserType":"0","desc":"成功","loginType":"9","originalUserType":"0","product":{"isRegister":"0"},"reset":"1000","speedUserVersion":"","status":"0","tokenId":"7876c161-424c-4efe-8a95-380afda14aea","userInfo":{"currentUserPWD":"","email":"","id":"0304890000000000000000000000000020790881","returnJson":{"uid":"20790881","klsso":"t5MkUtI3cRrgJJQw_yAhnD2ONuNzYt92Z9YMaE4C_OMY48_NUHzfrPdIhuLHznEV-TrYjwX2111b1ADLVr8F8nsVMYT3FwyLC4EgJXZEt1QV6Riizd83FeSWBRnsSN_zeHX1L3FmAbKnjJ2LTxCzaVMrBEw5fC6Lb1rfqXceVdY0","bindingInfos":[{"bindingType":"2","bindingOtherUserId":"20750537"},{"bindingType":"1","bindingOtherUserId":"20760525"}]},"userName":"oPlat000000000000038"},"userPlatformId":"0489"}`
| 参数名称 | 类型 | 说明 |
|---|---|---|
| returnJson | Json | json |
| returnJson/bindingInfos | JsonArray | json数组,包含绑定状态 |
| returnJson/bindingInfos/bindingType | String | 绑定状态类型,”1” 谷歌,”2” FB |
| returnJson/bindingInfos/bindingOtherUserId | String | 第三方用户ID |
接口定义
Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("opservice");
参数说明:
| 参数名称 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| Value1 | 必传 | String | 接口ID |
接口实例:
Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("opservice");
回调说明
昆仑SDK支付回调,
因为昆仑SDK特殊性,在支付成功的情况下,会增加一次支付成功的回调,而且游戏需要回调里面的昆仑币参数做AF的统计,所以跟支付成功的情况,在返回下单成功以后,在返回一次支付成功,并且数据放到pbid位置。(AF统计,昆仑要求游戏接入的一个统计SDK,由游戏自己接入)
接口定义
/*** 支付结果成功** @param code* 错误编码* @param ssid* 订单号* @param value* 昆仑返回的数据,JSON格式*/public abstract void Ourpalm_PaymentSuccess(int code, String ssid, String value);
参数说明:
对昆仑返回的数据进行说明,数据为JSON格式
| 参数名称 | 类型 | 说明 |
|---|---|---|
| pay_amount | String | 充值金额 |
| pay_coins | String | 昆仑币数 |
| history_id | String | 昆仑订单号 |
Odin等欧美通用SDK
分享文本或者链接内容到FB。
/*** 分享功能** @param value1* share 分享功能固定参数* @param value2* 分享连接的title* @param value3* 分享内容的介绍* @param value4* 分享的连接* @param value5* 分享的图标。 (可以不填,默认为网页缩略图)*/Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("share","THE KING OF FIGHTERS'98UM OL", "内容", "http://chs.98kof.game-bean.com/");
| 参数 | 重要性 | 类型 | 描述 |
|---|---|---|---|
| value1 | 必须 | String | 接口id。本接口为 share |
| value2 | 必须 | String | 分享内容Title,可以为空字符串”” |
| value3 | 必须 | String | 分享内容,可以为空字符串”” |
| value4 | 必须 | String | 分享链接,可以为空字符串”” |
| value5 | 可选 | String | 分享图标链接,参数可选 |
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubif (id.equals("share")) {// 分享功能结束if (arg[0].equals("0")) {Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_LONG).show();} else if (arg[0].equals("1")) {Toast.makeText(MainActivity.this, "分享失败 错误", Toast.LENGTH_LONG).show();} else if (arg[0].equals("2")) {Toast.makeText(MainActivity.this, "分享失败 用户取消", Toast.LENGTH_LONG).show();}}}}
分享图片内容到FB。 使用此功能,用户设备上必须有FB客户端,不然分享失败。
/*** 分享功能** @param value1* share 分享功能固定参数* @param value2* 分享图片的存储路径,全路径*/Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_Channel_Spreads("PhotoShare",imagepath);
| 参数 | 重要性 | 类型 | 描述 |
|---|---|---|---|
| value1 | 必须 | String | 接口id。本接口为 PhotoShare |
| value2 | 必须 | String | 分享图片的本地存储全路径 |
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubif (id.equals("PhotoShare")) {// 分享功能结束if (arg[0].equals("0")) {Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_LONG).show();} else if (arg[0].equals("1")) {Toast.makeText(MainActivity.this, "分享失败 错误", Toast.LENGTH_LONG).show();} else if (arg[0].equals("2")) {Toast.makeText(MainActivity.this, "分享失败 用户取消", Toast.LENGTH_LONG).show();}}}}
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 判断是那个接口返回的回调,本接口为:PhotoShare |
| arg[0] | String | 0 分享成功 1 分享失败,未知错误 2 分享失败,用户取消分享 |
分享文本或者链接内容到Twitter。
/***@param id* 接口id :twitter_share*@param msg* 分享到twitter内容*/Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("twitter_share","分享的内容");
| 参数 | 重要性 | 描述 |
|---|---|---|
| id | 必须 | 接口id:twitter_share |
| msg | 必须 | 分享到twitter内容 |
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubif (id.equals("twitter_share")) {// 分享功能结束if (arg[0].equals("0")) {Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_LONG).show();} else if (arg[0].equals("1")) {Toast.makeText(MainActivity.this, "分享失败 错误", Toast.LENGTH_LONG).show();} else if (arg[0].equals("2")) {Toast.makeText(MainActivity.this, "分享失败 用户取消", Toast.LENGTH_LONG).show();}}}}
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 接口id 判断是那个接口返回的回调,本接口为:twitter_share |
| arg[0] | String | 0 分享成功 1 分享失败,未知错误 2 分享失败,用户取消分享 |
分享图片内容到Twitter。
/***@param id* 接口id :twitter_PhotoShare*@param msg* 分享图片的存储地址,全路径*/Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("twitter_PhotoShare","分享图片的存储地址,全路径");
| 参数 | 重要性 | 描述 |
|---|---|---|
| id | 必须 | 接口id:twitter_PhotoShare |
| msg | 必须 | 分享图片的存储地址,全路径 |
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {@Overridepublic void Ourpalm_Spreads(String id, String... arg) {// TODO Auto-generated method stubif (id.equals("twitter_PhotoShare")) {// 分享功能结束if (arg[0].equals("0")) {Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_LONG).show();} else if (arg[0].equals("1")) {Toast.makeText(MainActivity.this, "分享失败 错误", Toast.LENGTH_LONG).show();} else if (arg[0].equals("2")) {Toast.makeText(MainActivity.this, "分享失败 用户取消", Toast.LENGTH_LONG).show();}}}}