此文档主要是用于在游戏及应用开发商需要接入掌趣海外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() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
if (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() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
if (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 block
e.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() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
Logs.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() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
if (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() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
if (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() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
if (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() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
if (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 block
e.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 block
e.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 block
e.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() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
if (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,消息模板ID
Ourpalm_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");
// 将要发送的信息内容,渠道标识 消息模板ID
Ourpalm_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() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
if (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() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
if (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() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
if (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() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
if (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() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
if (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 block
e.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() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
if (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() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
if (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 block
e.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 block
e.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 block
e.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() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
Logs.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,vk
Logs.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,vk
Toast.makeText(MainActivity.this, "账号绑定失败"+arg[0], Toast.LENGTH_LONG).show();
}else if (id.equals("Ucenter_unBindAccount_Fail")) {
//arg[0] 为平台标识:facebook,google,twitter,vk
Logs.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,vk
Logs.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位掌趣uid
long timestamp = System.currentTimeMillis();//精确到毫秒
String secretKey = "aaaaaa";//掌趣给该产品分配的secret_key
checkDataJson.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() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
Logs.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 block
e.printStackTrace();
}
}
Ourpalm_Entry.getInstance(MainActivity.mMainActivity).Ourpalm_Channel_Spreads("ShowBindEmail");
参数 | 重要性 | 类型 | 描述 |
---|---|---|---|
value1 | 必须 | String | 接口id。本接口为 ShowBindEmail |
// 特殊功能回调接口。
Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
Logs.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() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
if (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() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
if (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 block
e.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() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
if (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() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
if (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-data
android: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() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
Logs.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() {
@Override
public 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() {
@Override
public 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() {
@Override
public 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() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
if(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() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
if (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() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
if (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() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
if (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() {
@Override
public 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() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
if (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() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
if (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() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
if (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() {
@Override
public void Ourpalm_Spreads(String id, String... arg) {
// TODO Auto-generated method stub
if (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();
}
}
}
}