1.  下载 Facebook SDK

2.  在facebook下设置app的相关信息

3.  示例代码:

package com.example.testshare;import com.example.zcsocial.R;
import com.facebook.FacebookException;
import com.facebook.FacebookOperationCanceledException;
import com.facebook.Session;
import com.facebook.SessionState;
import com.facebook.UiLifecycleHelper;
import com.facebook.widget.FacebookDialog;
import com.facebook.widget.WebDialog;
import com.facebook.widget.WebDialog.FeedDialogBuilder;
import com.facebook.widget.WebDialog.OnCompleteListener;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;public class MainActivity extends Activity implements OnClickListener
{public static final String TAG = "MainActivity";// /private UiLifecycleHelper uiHelper;@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);uiHelper = new UiLifecycleHelper(this, null);uiHelper.onCreate(savedInstanceState);// //findViewById(R.id.btn).setOnClickListener(this);}private Session.StatusCallback callback = new Session.StatusCallback(){@Overridepublic void call(Session session, SessionState state, Exception exception){if (state.isOpened()){publishFeedDialog();} else{Log.e(TAG, "Error:" + exception.getMessage());}}};private void publishFeedDialog(){Bundle params = new Bundle();params.putString("name", "Facebook SDK for Android");params.putString("caption", "Build great social apps and get more installs.");params.putString("description", "The Facebook SDK for Android makes it easier and faster to develop Facebook integrated Android apps.");params.putString("link", "https://developers.facebook.com/android");params.putString("picture", "https://raw.github.com/fbsamples/ios-3.x-howtos/master/Images/iossdk_logo.png");FeedDialogBuilder dialogBuilder = new WebDialog.FeedDialogBuilder(this, Session.getActiveSession(), params);WebDialog feedDialog = dialogBuilder.setOnCompleteListener(new OnCompleteListener(){@Overridepublic void onComplete(Bundle values, FacebookException error){if (error == null){// When the story is posted, echo the success// and the post Id.final String postId = values.getString("post_id");if (postId != null){Toast.makeText(MainActivity.this, "Posted story, id: " + postId, Toast.LENGTH_SHORT).show();} else{// User clicked the Cancel buttonToast.makeText(MainActivity.this, "Publish cancelled", Toast.LENGTH_SHORT).show();}} else if (error instanceof FacebookOperationCanceledException){// User clicked the "x" buttonToast.makeText(MainActivity.this, "Publish cancelled", Toast.LENGTH_SHORT).show();} else{// Generic, ex: network errorToast.makeText(MainActivity.this, "Error posting story", Toast.LENGTH_SHORT).show();}}}).build();feedDialog.show();}@Overridepublic void onClick(View v){if (Session.getActiveSession() == null || !Session.getActiveSession().isOpened()){Session.openActiveSession(MainActivity.this, true, callback);} else{publishFeedDialog();}}//  Life@Overrideprotected void onPause(){super.onPause();uiHelper.onPause();}@Overrideprotected void onDestroy(){super.onDestroy();uiHelper.onDestroy();}@Overrideprotected void onResume(){super.onResume();uiHelper.onResume();}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data){super.onActivityResult(requestCode, resultCode, data);uiHelper.onActivityResult(requestCode, resultCode, data, dialogCallback);}private FacebookDialog.Callback dialogCallback = new FacebookDialog.Callback(){@Overridepublic void onError(FacebookDialog.PendingCall pendingCall, Exception error, Bundle data){Log.e("MainActivity", String.format("Error: %s", error.toString()));}@Overridepublic void onComplete(FacebookDialog.PendingCall pendingCall, Bundle data){Log.e("MainActivity", "Success!");}};}

设置 Facebook相关的Activity

        <!-- facebook相关 --><activityandroid:name="com.facebook.LoginActivity"android:label="@string/app_name"android:theme="@android:style/Theme.Translucent.NoTitleBar" /><meta-dataandroid:name="com.facebook.sdk.ApplicationId"android:value="@string/app_id" />

添加联网的权限即可.

4.总结下,就是  先检查Facebook的Seesion是否已经打开,如果没有打开,则先打开,否则直接进行分享.

---------------------------------------------------------分割线----------------------------------------------------------

cocos2dx IOS下添加 Facebook 分享

1.下载并添加Facebook SDK,在Info.plist 里面设置好相应的数据

FacebookAppID                        xxxxxxxxx

FacebookDisplayName              My IOS APP

URL types

---------Item 0

----------------URL Schemes

---------------------------Item 0                fbxxxxxxxx

2. 在 RootViewController.h .mm里面添加一个函数

- (NSDictionary*)parseURLParams:(NSString *)query {NSArray *pairs = [query componentsSeparatedByString:@"&"];NSMutableDictionary *params = [[NSMutableDictionary alloc] init];for (NSString *pair in pairs) {NSArray *kv = [pair componentsSeparatedByString:@"="];NSString *val =[kv[1] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];params[kv[0]] = val;}return params;
}

3.添加 share方法

// 分享到 FaceBook
void IOSPlatform::shareFacebook(){#if CC_TARGET_PLATFORM == CC_PLATFORM_IOS// Put together the dialog parametersNSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"Sharing Tutorial", @"name",@"Build great social apps and get more installs.", @"caption",@"Allow your users to share stories on Facebook from your app using the iOS SDK.", @"description",@"https://developers.facebook.com/docs/ios/share/", @"link",@"http://i.imgur.com/g3Qc1HN.png", @"picture",nil];// Show the feed dialog[FBWebDialogs presentFeedDialogModallyWithSession:nilparameters:paramshandler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) {if (error) {// An error occurred, we need to handle the error// See: https://developers.facebook.com/docs/ios/errorsNSLog([NSString stringWithFormat:@"Error publishing story: %@", error.description]);} else {if (result == FBWebDialogResultDialogNotCompleted) {// User cancelled.NSLog(@"User cancelled.");} else {// Handle the publish feed callbackNSDictionary *urlParams = [_gRootViewController parseURLParams:[resultURL query]];if (![urlParams valueForKey:@"post_id"]) {// User cancelled.NSLog(@"User cancelled.");} else {// User clicked the Share buttonNSString *result = [NSString stringWithFormat: @"Posted story, id: %@", [urlParams valueForKey:@"post_id"]];NSLog(@"result %@", result);}}}}];#endif
}

即可.

Android下进行 Facebook 分享相关推荐

  1. Android App接入Facebook分享SDK,概率性无法启动Facebook客户端的问题分析

    问题来源 由于我司的android app产品主要是面向海外,因此,app中的分享功能接入facebook分享是必不可少的.最近在接入facebook android sdk进行分享时,发现一个非常奇 ...

  2. Android 集成Facebook分享功能

    1,配置build.gradle 项目级别的gradle: repositories {mavenCentral() } app级别的gradle: dependencies { implementa ...

  3. Android下使用最新FaceBook SDK 3.0(二)使用facebook实现登录注销

    前一篇我们学习了集成FacebookSDK到我们项目工程中,这篇来学习一下如何使用facebook来登录! 1.打开 res/layout/activity_main.xml,在布局中添加一个face ...

  4. Android 友盟社会化分享的集成与封装

    Android 友盟社会化分享的集成与封装 分享是APP中非常高频的操作之一,在Android的开发环境中,第三方分享框架也有很多.比较流行的包括 极光社会化分享(sharesdk).友盟社会化分享( ...

  5. 微信 Tinker 负责人张绍文关于 Android 热修复直播分享记录

    2019独角兽企业重金招聘Python工程师标准>>> 微信 Tinker 负责人张绍文关于 Android 热修复直播分享记录 来源:微信技术团队的公众号WeMobileDev 热 ...

  6. android sdl,Android下SDL2实现五子棋游戏

    本文实例介绍了Android下用SDL2实现一个简单的五子棋游戏,分享给大家供大家参考,具体内容如下 1. Five.c // Five.c // SDL2 五子棋 // gcc -mwindows ...

  7. android下拉会谈效果,Android实现下拉展示条目效果

    本文实例为大家分享了Android下拉展示条目的具体代码,供大家参考,具体内容如下 布局文件 xmlns:tools="http://www.easck.com/tools" an ...

  8. android 截屏 分享,Android应用内截图分享的实现记录

    Android应用内截图分享的实现记录 近期的项目中有个需求,需要将某个表示用户身份的页面整个截取下来,分享到微信微博.网上也很多的解决方案,我也分享下我自己的爬坑记录. 需求分析 有个页面,用于展示 ...

  9. facebook 分享页面_如何建立Facebook页面

    facebook 分享页面 Facebook Pages are a great way to promote your business, a cause, or just your hobby. ...

最新文章

  1. 快速排序之Java实现
  2. SQL Server 个人手册
  3. md是什么类型的文件?怎么打开md文件,Markdown的编写,Markdown转化为html
  4. Mac中AndroidStudio没有找到Plugins的问题
  5. Unix操作系统***追踪反击战
  6. antlr idea 入门_ANTLR:入门
  7. 中小企业如何提高售前,售中,售后客服质量?
  8. ruby 生成哈希值_如何检查Ruby中是否存在哈希键?
  9. MacVim配置目录树
  10. Spring自学日志00(Spring配置文件头及xsd文件版本浅析)
  11. 15.QT中qchart绘制图表注意事项
  12. php 反射类 解析注释,php反射获取类和方法中的注释
  13. 【优化求解】基于matlab遗传算法求解车辆发车间隔优化问题【含Matlab源码 132期】
  14. Designing With Web Standard(一)
  15. 新闻管理系统——系统管理员模块(一)
  16. $root、$parent、$ref以及父组件方法共享——学习笔记
  17. 高位十字星收盘什么意思?高位十字星缩量是什么?
  18. 第二重要极限公式推导过程_土木考研 土力学第六章公式推导
  19. Springboot集成MybatisPlus、Druid
  20. Membership 网站安全相关配置节

热门文章

  1. 物联网竞赛-基于CC2530寄存器开发-基础知识学习
  2. CRMEB知识付费系统优势及常见问题解答
  3. 苹果审核内购图片无法上传的问题
  4. Tensorflow图片鉴黄 完整项目
  5. 文献阅读:6G移动通信技术展望
  6. 海外智慧(灯杆)路灯市场发展状况如何?
  7. 张一鸣:大学四年收获及工作感悟
  8. 三维(点云)语义分割概述以及方法总结
  9. MATLAB中的概率论与数理统计
  10. Python指定使用gpu