1,配置build.gradle

项目级别的gradle:

repositories {mavenCentral()
}

app级别的gradle:

dependencies {
implementation 'com.facebook.android:facebook-android-sdk:[5,6)'
}

2,配置string文件

打开strings.xml文件,添加一个名字为facebook_app_id的新字段,值就是你后台得到的Facebook App ID:

<string name="facebook_app_id">61246242287XXXX</string>

3,配置AndroidManifest.xml

<meta-dataandroid:name="com.facebook.sdk.ApplicationId"android:value="@string/facebook_app_id" />
<provider android:authorities="com.facebook.app.FacebookContentProviderXXX"android:name="com.facebook.FacebookContentProvider"android:exported="true"/>

xxx为Facebook的appid

4,facebook后台配置

需要包名、mainActivity、密钥散列

密钥散列需要是通过keytool 和 openssl 共同生成。

keytool是JDK里的一个工具,装了JDK并配置好环境变量的就可以使用这个 keytool 命令,但是难点在于这个 openssl 命令,需要单独安装 openssl,并且安装配置还挺麻烦。具体可以参考这篇文章,写的还是不错的,不仅有详细的步骤,还有出现的错误处理。

https://www.cnblogs.com/ZhouL3777/archive/2012/10/21/2732890.html

我本地使用的openssl压缩包也放在这:

链接:https://pan.baidu.com/s/10o714bCWPQRThZVeAWfnwg 
提取码:uwhq

5,获取密钥散列:

我是windows系统,主要是在cmd中运行:

keytool -exportcert -alias YOUR_RELEASE_KEY_ALIAS -keystore YOUR_RELEASE_KEY_PATH | openssl sha1 -binary | openssl base64

YOUR_RELEASE_KEY_ALIAS -----替换您的发布密钥别名(应用级别的build.gradle里的 KeyAlias~)

YOUR_RELEASE_KEY_PATH  -----替换为您的 keystore 路径(jks文件)

openssl -----openssl.exe 的路径代(C:\......\openssl.exe)

6,分享的主要代码

如果机器没有安装Facebook客户端的话,会自动调用H5登录Facebook的页面

private var callbackManager: CallbackManager? = null
private fun sharedToFace() {callbackManager = CallbackManager.Factory.create()val shareDialog = ShareDialog(this)shareDialog.registerCallback(callbackManager, object : FacebookCallback<Sharer.Result> {override fun onSuccess(result: Sharer.Result?) {OToastProUtils.toastShort(“分享成功”)}override fun onCancel() {OToastProUtils.toastShort(“取消分享”)}override fun onError(error: FacebookException?) {OToastProUtils.toastShort(“分享失败”)}})if (ShareDialog.canShow(ShareLinkContent::class.java)) {//连接分享,指向Google playval linkContent = ShareLinkContent.Builder()
//                .setContentTitle("下载XX,免费领取~~~~")
//                .setContentDescription("这款App很好,快来下载吧").setContentUrl(Uri.parse("https://play.google.com/store/apps/details?id=" + context?.getPackageName())).build()shareDialog.show(linkContent)//分享图片
//            val bitmap = BitmapFactory.decodeResource(resources, R.mipmap.hongbproao_nodataop, null)
//            var mSharePhoto = SharePhoto.Builder()
//                .setCaption("Test share")
//                .setBitmap(bitmap)
//                .build()
//
//            var mContent = SharePhotoContent.Builder().addPhoto(mSharePhoto).build()
//            shareDialog.show(mContent)
//            if (bitmap != null && !bitmap.isRecycled()) {
//                bitmap.recycle()
//            }//分享视频
//            var videoFileUri = ...
//           var ShareVideo =  ShareVideo.Builder()
//                .setLocalUrl(videoUrl)
//                .build()
//            var content = ShareVideoContent.Builder()
//                .setVideo(ShareVideo)
//                .build()
//
//
//            //分享多媒体
//            var sharePhoto1 = SharePhoto.Builder()
//                .setBitmap(...)
//                .build()
//            var sharePhoto2 = SharePhoto.Builder()
//                .setBitmap(...)
//                .build()
//            var shareVideo1 = ShareVideo.Builder()
//                .setLocalUrl(...)
//                .build()
//            var shareVideo2 = ShareVideo.Builder()
//                .setLocalUrl(...)
//                .build()
//
//             var shareContent =  ShareMediaContent.Builder()
//                .addMedium(sharePhoto1)
//                .addMedium(sharePhoto2)
//                .addMedium(shareVideo1)
//                .addMedium(shareVideo2)
//                .build()} else {OToastProUtils.toastShort(“未安装Facebook”)}}
/*** 分享成功执行回调*/
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {super.onActivityResult(requestCode, resultCode, data)//这里执行了下面的方法,会调用shareDialog.registerCallback~~~callbackManager?.onActivityResult(requestCode, resultCode, data)
}

这里我的疑问是:我既想分享链接又希望有标题和文字描述,但是会链接起作用,title和description,调用的Facebook的时候都不会显示,有两全其美的方法嘛?~~

效果:

(这个弹框是自己写的,只是点击Facebook的时候调用上面的分享方法)

(点击分享链接Facebook页面)

Android 集成Facebook分享功能相关推荐

  1. Android 集成 Facebook 分享常见问题

    Facebook 作为世界上用户量最大的应用之一,很多时候我们可能会将自己应用的数据分享到 facebook上,那么我们就需要集成其 SDK,我们可以直接去集成 Facebook 官方的 SDK,也可 ...

  2. Android微信App 分享功能调整,Android 微信SDK分享功能(1)

    转于:http://blog.csdn.net/freesonhp/article/details/10296141 ----------------------------------------- ...

  3. android开发微信分享功能,Android编程实现微信分享信息的方法

    本文实例讲述了Android编程实现微信分享信息的方法.分享给大家供大家参考,具体如下: 随着微信越来越火,越来越多的应用要求有分享到微信的功能.虽然有很多平台都帮集成有分享功能,比如友盟.但是个人觉 ...

  4. Android集成微信分享,由于分享的缩略图大于32K,而无法调起微信客户端

    在项目中集成微信分享功能,分享的是一个链接,带有图片和标题. 按照微信开放平台网页类型分享示例,进行代码编写,但是点击分享 始终无法调起微信客户端. /*** 微信分享到好友(聊天界面)*/publi ...

  5. Android 实现微博分享功能

    Android 实现微博分享功能的实现,通过发送下面的intent: Intent intent = new Intent(Intent.ACTION_SEND); //启动分享发送的属性 inten ...

  6. android 分享到微博客户端,Android APP集成新浪微博分享功能

    本文为大家分享了新浪微博分享功能集成,供大家参考,具体内容如下 直接导入weibosdkcore.jar:适用于只需要授权.分享.网络请求框架功能的项目. 无论使用哪一种方式,都需要先将demo中li ...

  7. Android轻松实现分享功能

    在Android开发中,要实现分享功能,可能首先想到第三方的ShareSDK,其实,想要分享一些图片,文本之类的完全没必要在App中集成第三方SDK,利用原生的SDK就可以轻松实现分享功能. Acti ...

  8. Android集成Facebook登录时遇到的问题invalid key hash.the key hash

    一.Facebook:登录功能已停用,我们已停用通过嵌入式浏览器登录Facebook的功能 错误提示: 为保护账户安全,我们已停用通过嵌入式浏览器登录Facebook的功能.若要继续,请更新登录使用的 ...

  9. qt for android集成微信分享及签名工具的使用

    签名工具 关于[微信开放平台Android应用签名的本质及如何获取]转自https://blog.csdn.net/github_2011/article/details/60966976 签名工具下 ...

最新文章

  1. excel乘法公式怎么输入_Excel函数中的IF条件函数怎么用?四个IF函数公式带你轻松上手...
  2. WB, IHC实验问题总结与处理方案
  3. 疯狂java学习笔记1023---线程的同步
  4. 为什么说流处理即未来?
  5. flex弹性布局笔记
  6. CSS 居中 可随着浏览器变大变小而居中
  7. 驳《寒门再难出贵子》——谁说寒门大学生没有春天!
  8. 大数据时代下的办公自动化系统
  9. mysql分页查询与ES分页查询解析
  10. ADXL345-数字加速度计
  11. 软件测试工程师的职业技能分析
  12. Iterative Reweighted Least Squares
  13. Android课设:简易音乐播放器
  14. 【2019/07/20测试 T2】切题
  15. 嵌入式设备启动过程(ARM )
  16. 智能合约编写之Solidity的设计模式 | FISCO BCOS超话区块链专场(篇4)
  17. MATLABGPU渲染曲线
  18. 亚马逊无人便利店正式开业,深度学习技术更进一步
  19. 跨平台转码软件HandBrake, 一款万能的视频压缩/格式转换工具!
  20. CRM 软件都开始投身小程序了:纷享销客推出“客脉”小程序

热门文章

  1. ubuntu smba常用设置
  2. 强化学习中的递归神经网络
  3. 蔡维德:区块链应用落地不是狼来了,而是老虎来了
  4. python传递指针_python值传递和指针传递
  5. 对校招生培养工作的建议_如何做好校招生的培育
  6. 什么鬼,Kubelet 重启之后容器也跟着重启了?
  7. 无源波分和彩光模块_波分光模块详细介绍
  8. 小白学python之前要学会什么_小白学 Python(1):开篇
  9. HTML5(李炎恢)学习笔记一 ------------- HTML5的概述
  10. 基于卷积神经网络的口罩佩戴识别与检测