[Android]Cocos2d-x集成facebook sdk 4.x(三)
来源:互联网 发布:儿童编程软件下载 编辑:程序博客网 时间:2024/05/02 02:48
分享
一、配置
在 AndroidManifest.xml 中设置 ContentProvider,代码如下:
<provider android:authorities="com.facebook.app.FacebookContentProviderAPP_ID" android:name="com.facebook.FacebookContentProvider" android:exported="true" />
二、注册回调
private static FacebookCallback<Sharer.Result> shareCallback = new FacebookCallback<Sharer.Result>() { @Override public void onCancel() { executeCallBack(1,"分享取消", null); System.out.println("cocos2d-x------------------------------>SHARE CANCELED"); } @Override public void onError(FacebookException error) { executeCallBack(1,"分享错误", null); System.out.println("cocos2d-x------------------------------>SHARE ERROR"); } @Override public void onSuccess(Sharer.Result result) { executeCallBack(0,"分享成功", null); System.out.println("cocos2d-x------------------------------>SHARE SUCCEED"); } };ShareDialog shareDialog = new ShareDialog(m_mainActivity);shareDialog.registerCallback(m_facebookCallbackManager, shareCallback);
三、内容建模
facebook支持分享链接、照片、视频、多媒体等等,在这里只介绍链接分享。用户通过应用将链接分享到 Facebook 时,会包括在帖子中显示的属性:
contentURL:要分享的链接
contentTitle:表示链接中的内容的标题
imageURL:将在帖子中显示的缩略图的网址
contentDescription:通常为 2-4 个句子
//分享链接 ShareLinkContent linkContent = new ShareLinkContent.Builder() .setContentTitle(contentTitle) .setContentDescription(contentDescription) .setContentUrl(Uri.parse(contentUrl)) .setImageUrl(Uri.parse(imageUrl)) .build();
如果已安装facebook应用,分享时会打开分享对话框,分享对话框会切换到原生 Android 版 Facebook 应用,并在发布帖子后将控制权交还给应用;如果未安装facebook应用,会弹出网页对话框(前提是已获得发布权限),如果未获取到发布权限,需要在分享前向用户请求。
if (ShareDialog.canShow(ShareLinkContent.class)) { shareDialog.show(linkContent);} else if (hasPublishPermission()) { ShareApi.share(linkContent, shareCallback);} else { LoginManager.getInstance().logInWithPublishPermissions(m_mainActivity, Arrays.asList("publish_actions"));}
应用邀请
要发送应用邀请,必须使用 4.0 或以上版本的 Android 版 Facebook SDK。
一、创建应用链接
创建应用链接有一下两种方式:
1. facebook应用链接生成工具,生成应用链接
2. 标记
<html><head> <meta property="al:ios:url" content="couchinapp://invite_from_fb?referral=123456789" /> <meta property="al:ios:app_store_id" content="123456789" /> <meta property="al:ios:app_name" content="Couchin'" /> <meta property="al:android:url" content="couchinapp://invite_from_fb?referral=123456789" /> <meta property="al:android:app_name" content="Couchin" /> <meta property="al:android:package" content="com.mycompany.couchin" /> <meta property="al:web:url" content="http://www.couchinapp.com/myapp.html" /></head><body>Couchin App Link</body></html>
二、应用链接建模
appLinkUrl (必选):接收人点击应用邀请页面的 install/play(安装/试玩)按钮时,所打开的应用链接。
previewImageUrl(可选):预览图片网址。
如果未设置 previewImageURL,邀请将使用应用设置中“应用详情”版块的“推广图片”。如果无可用图片,邀请将不能显示。
AppInviteContent content = new AppInviteContent.Builder() .setApplinkUrl(applinkUrl) .setPreviewImageUrl(imageUrl) .build();AppInviteDialog.show(m_mainActivity , content);
三、注册回调
private static FacebookCallback<AppInviteDialog.Result> appInviteCallback = new FacebookCallback<AppInviteDialog.Result>() { @Override public void onSuccess(AppInviteDialog.Result result) { executeCallBack(0,"邀请成功", null); System.out.println("cocos2d-x------------------------->Invite succeed"); } @Override public void onCancel() { executeCallBack(1,"邀请取消", null); System.out.println("cocos2d-x------------------------->Invite cancel"); } @Override public void onError(FacebookException error) { executeCallBack(1,"邀请错误", null); System.out.println("cocos2d-x------------------------->Invite error" + String.format("Error: %s", error.toString())); } };AppInviteDialog appInviteDialog = new AppInviteDialog(m_mainActivity);appInviteDialog.registerCallback(m_facebookCallbackManager, appInviteCallback);
游戏请求
参考文档
游戏请求可用于吸引新玩家或重新吸引现有玩家。请求可在两种情况下发送:
- 接收方是发送方的未授权好友。这种情况适合使用邀请好友。
- 接收方是发送方的已授权。这种情况适合使用回合制游戏通知、赠送礼物和寻求帮助等。
邀请好友
一、 获取未授权好友列表
在登录成功后,向facebook请求获取未授权好友。
GraphRequest request = GraphRequest.newMeRequest( accessToken, new GraphRequest.GraphJSONObjectCallback() { @Override public void onCompleted(JSONObject object, GraphResponse response) { // Insert your code here }});Bundle parameters = new Bundle();parameters.putString("fields", "invitable_friends");request.setParameters(parameters);request.executeAsync();
二、邀请口令
邀请口令是长度可变的唯一(按用户和按游戏区分)字符串,在每个好友对象中作为 id 字段的值返回。邀请口令会过期,并可能视游戏会话的不同而不同。
三、发送邀请
public static void sendGameRequestToFriend(String _content, String inviteTokenStr, String _sunmm, String _callidentifier) { String[] inviteTokenStrs = inviteTokenStr.split(","); List<String> inviteTokens = Arrays.asList(inviteTokenStrs); GameRequestDialog requestDialog = new GameRequestDialog(m_mainActivity); requestDialog.registerCallback(m_facebookCallbackManager, new FacebookCallback<GameRequestDialog.Result>() { public void onSuccess(GameRequestDialog.Result result) { executeCallBack(0, "邀请成功", null); } public void onCancel() { executeCallBack(1, "邀请取消", null); } public void onError(FacebookException error) { executeCallBack(1, "邀请错误", null); } } ); GameRequestContent content = new GameRequestContent.Builder() .setMessage(_content) .setRecipients(inviteTokens) .build(); requestDialog.show(content); }
- [Android]Cocos2d-x集成facebook sdk 4.x(三)
- [Android]Cocos2d-x集成facebook sdk 4.x(一)
- [Android]Cocos2d-x集成facebook sdk 4.x(二)
- 【IOS和Android】Cocos2d-x 集成Facebook分享功能
- Cocos2d-Lua(Quick-Cocos2d-x)集成第三方SDK(三)
- cocos2d-x集成到IOS/Android SDK控件
- cocos2d-x集成友盟消息推送SDK(Android版)
- Cocos2d-x 2.x android 集成admob广告(三)banner+interstitial
- cocos2d-x集成短信验证sdk
- Cocos2d-Lua(Quick-Cocos2d-x)集成第三方SDK(一)
- Cocos2d-Lua(Quick-Cocos2d-x)集成第三方SDK(二)
- cocos2d-x之jni使用(对接Android各种sdk)
- 浅谈Android TV集成Cocos2d-x环境(一)
- cocos2d-x集成友盟消息推送SDK(ios版)
- MFC集成cocos2d-x
- cocos2d-x 3.x 集成百度地图(Android IOS)
- 【Cocos2d-x】集成wxSqlite3到Cocos2d-x
- 【Cocos2d-x】集成wxSqlite3到Cocos2d-x
- redis加入到Windows 服务
- JVM垃圾回收机制
- Linux查看并释放占用端口
- 触发Full GC执行的情况
- 数据结构 -- 链栈java实现
- [Android]Cocos2d-x集成facebook sdk 4.x(三)
- 非对称加密算法之DH
- js数据类型
- 阿里云ECS服务器组内网
- Didn't find class "com.android.tools.fd.runtime.BootstrapApplication"
- h264封装为flv文件
- javaee sqlhelper公共类的定义与使用
- Resources.getSystem() 和 getResources()
- 画一条简单的直线