Android 集成Facebook分享功能
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分享功能相关推荐
- Android 集成 Facebook 分享常见问题
Facebook 作为世界上用户量最大的应用之一,很多时候我们可能会将自己应用的数据分享到 facebook上,那么我们就需要集成其 SDK,我们可以直接去集成 Facebook 官方的 SDK,也可 ...
- Android微信App 分享功能调整,Android 微信SDK分享功能(1)
转于:http://blog.csdn.net/freesonhp/article/details/10296141 ----------------------------------------- ...
- android开发微信分享功能,Android编程实现微信分享信息的方法
本文实例讲述了Android编程实现微信分享信息的方法.分享给大家供大家参考,具体如下: 随着微信越来越火,越来越多的应用要求有分享到微信的功能.虽然有很多平台都帮集成有分享功能,比如友盟.但是个人觉 ...
- Android集成微信分享,由于分享的缩略图大于32K,而无法调起微信客户端
在项目中集成微信分享功能,分享的是一个链接,带有图片和标题. 按照微信开放平台网页类型分享示例,进行代码编写,但是点击分享 始终无法调起微信客户端. /*** 微信分享到好友(聊天界面)*/publi ...
- Android 实现微博分享功能
Android 实现微博分享功能的实现,通过发送下面的intent: Intent intent = new Intent(Intent.ACTION_SEND); //启动分享发送的属性 inten ...
- android 分享到微博客户端,Android APP集成新浪微博分享功能
本文为大家分享了新浪微博分享功能集成,供大家参考,具体内容如下 直接导入weibosdkcore.jar:适用于只需要授权.分享.网络请求框架功能的项目. 无论使用哪一种方式,都需要先将demo中li ...
- Android轻松实现分享功能
在Android开发中,要实现分享功能,可能首先想到第三方的ShareSDK,其实,想要分享一些图片,文本之类的完全没必要在App中集成第三方SDK,利用原生的SDK就可以轻松实现分享功能. Acti ...
- Android集成Facebook登录时遇到的问题invalid key hash.the key hash
一.Facebook:登录功能已停用,我们已停用通过嵌入式浏览器登录Facebook的功能 错误提示: 为保护账户安全,我们已停用通过嵌入式浏览器登录Facebook的功能.若要继续,请更新登录使用的 ...
- qt for android集成微信分享及签名工具的使用
签名工具 关于[微信开放平台Android应用签名的本质及如何获取]转自https://blog.csdn.net/github_2011/article/details/60966976 签名工具下 ...
最新文章
- excel乘法公式怎么输入_Excel函数中的IF条件函数怎么用?四个IF函数公式带你轻松上手...
- WB, IHC实验问题总结与处理方案
- 疯狂java学习笔记1023---线程的同步
- 为什么说流处理即未来?
- flex弹性布局笔记
- CSS 居中 可随着浏览器变大变小而居中
- 驳《寒门再难出贵子》——谁说寒门大学生没有春天!
- 大数据时代下的办公自动化系统
- mysql分页查询与ES分页查询解析
- ADXL345-数字加速度计
- 软件测试工程师的职业技能分析
- Iterative Reweighted Least Squares
- Android课设:简易音乐播放器
- 【2019/07/20测试 T2】切题
- 嵌入式设备启动过程(ARM )
- 智能合约编写之Solidity的设计模式 | FISCO BCOS超话区块链专场(篇4)
- MATLABGPU渲染曲线
- 亚马逊无人便利店正式开业,深度学习技术更进一步
- 跨平台转码软件HandBrake, 一款万能的视频压缩/格式转换工具!
- CRM 软件都开始投身小程序了:纷享销客推出“客脉”小程序