Android Facebook登录、分享;ins分享
Facebook开发者平台:传送门
**
Facebook登录
**
## 1.在Facebook开发者平台上新建或登录Facebook账号
2.添加新应用,创建应用成功后,留意上面的应用编号,等会需要用到
3.添加依赖
(1)在您的项目中,打开 your_app > Gradle Scripts > build.gradle (Project),确保下列存储库都添加到 buildscript { repositories {}} 中:
jcenter()
(2)在您的项目中,打开 your_app > Gradle Scripts > build.gradle (Module: app) 并将下列执行语句添加到 dependencies{} 部分,以便依赖于最新版的 Facebook 登录 SDK:
implementation 'com.facebook.android:facebook-login:[4,5)'
4.其他配置
(1)打开您的 /app/res/values/strings.xml 文件。添加如下所示的代码:
APP_ID就是上面提到的应用编号(记得去除中括号)
<string name="facebook_app_id">[APP_ID]</string>
<string name="fb_login_protocol_scheme">fb[APP_ID]</string>
(2)打开 /app/manifest/AndroidManifest.xml 文件。在 application 元素后添加以下 uses-permission 元素:
<uses-permission android:name="android.permission.INTERNET"/>
(3)在 application 元素中添加以下 meta-data 元素、一个针对 Facebook 的 activity 元素以及一个针对 Chrome 自定义选项卡的 activity 元素和意向筛选条件:
<meta-dataandroid:name="com.facebook.sdk.ApplicationId"android:value="@string/facebook_app_id" /><activityandroid:name="com.facebook.FacebookActivity"android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"android:label="@string/app_name" /><activityandroid:name="com.facebook.CustomTabActivity"android:exported="true"><intent-filter><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.BROWSABLE" /><data android:scheme="@string/fb_login_protocol_scheme" /></intent-filter></activity>
5.将软件包名称与应用的默认类关联
打开关联链接,看到第5点,如图(因为我没有登录,所以不能输入):
PS:散列的获取方式
比较直接的方式,在你的项目输入以下代码,然后运行,查看log,然后复制上去
//获取密钥散列try {PackageInfo info = getPackageManager().getPackageInfo("com.facebook.samples.hellofacebook",PackageManager.GET_SIGNATURES);for (Signature signature : info.signatures) {MessageDigest md = MessageDigest.getInstance("SHA");md.update(signature.toByteArray());Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));}} catch (PackageManager.NameNotFoundException e) {} catch (NoSuchAlgorithmException e) {}
6.添加登录按钮,打开XML文件:
<com.facebook.login.widget.LoginButtonandroid:id="@+id/login_button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"android:layout_marginTop="30dp"android:layout_marginBottom="30dp" />
7.注册回调
CallbackManager callbackManager = CallbackManager.Factory.create();loginButton = (LoginButton) findViewById(R.id.login_button);loginButton.setReadPermissions("email");// 在fragment中使用loginButton.setFragment(this); // 回调loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {@Overridepublic void onSuccess(LoginResult loginResult) {// App code}@Overridepublic void onCancel() {// App code}@Overridepublic void onError(FacebookException exception) {// App code}});
8.最后一步,在 onActivityResult 方法中调用 callbackManager.onActivityResult,通过 callbackManager 将登录结果传递至 LoginManager。
@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {callbackManager.onActivityResult(requestCode, resultCode, data);super.onActivityResult(requestCode, resultCode, data);}
**
Facebook分享
**
1.添加依赖
build.gradle (Project)下buildscript { repositories {}}添加
mavenCentral()
build.gradle (Module: app)下dependencies{}添加
implementation 'com.facebook.android:facebook-share:[4,5)'
2.添加散列,散列获取参考上面登录的散列获取方式
生成 Android 密钥散列并添加到开发者资料页
3.在 AndroidManifest.xml 中设置 ContentProvider,其中 {APP_ID} 是您的应用编号
<provider android:authorities="com.facebook.app.FacebookContentProvider{APP_ID}"android:name="com.facebook.FacebookContentProvider"android:exported="true"/>
4.分享链接
ShareLinkContent content = new ShareLinkContent.Builder().setContentUrl(Uri.parse("https://developers.facebook.com")).build();button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//调用分享弹窗ShareDialog.show(MainActivity.this, content);}
});
5.分享图片
Bitmap image = ...
SharePhoto photo = new SharePhoto.Builder().setBitmap(image).build();
SharePhotoContent content = new SharePhotoContent.Builder().addPhoto(photo).build();
6.分享视频
Uri videoFileUri = ...
ShareVideo = new ShareVideo.Builder().setLocalUrl(videoUrl).build();
ShareVideoContent content = new ShareVideoContent.Builder().setVideo(video).build();
7.多媒体
SharePhoto sharePhoto1 = new SharePhoto.Builder().setBitmap(...).build();
SharePhoto sharePhoto2 = new SharePhoto.Builder().setBitmap(...).build();
ShareVideo shareVideo1 = new ShareVideo.Builder().setLocalUrl(...).build();
ShareVideo shareVideo2 = new ShareVideo.Builder().setLocalUrl(...).build();ShareContent shareContent = new ShareMediaContent.Builder().addMedium(sharePhoto1).addMedium(sharePhoto2).addMedium(shareVideo1).addMedium(shareVideo2).build();ShareDialog shareDialog = new ShareDialog(...);
shareDialog.show(shareContent, Mode.AUTOMATIC);
其他更加丰富的用法可参考Facebook分享文档:https://developers.facebook.com/docs/sharing/android
ins分享
ins分享不需要添加SDK,但是目前只能分享drawable下图片,网络图片分享会出现无法加载图片的Toast
Uri file = Uri.parse("android.resource://com.example.newfacebook/"+R.drawable.aaa);btn_ins.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);shareIntent.setType("image/*");shareIntent.putExtra(Intent.EXTRA_STREAM,file);shareIntent.putExtra(Intent.EXTRA_TITLE, "YOUR TEXT HERE");shareIntent.setPackage("com.instagram.android");startActivity(shareIntent);}});
Android Facebook登录、分享;ins分享相关推荐
- facebook、twitter、facebook登录、whatsapp分享、微信分享
facebook.twitter.facebook 登录.whatsapp 分享.微信分享 几个概念 爬虫 所谓爬虫,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本. html 元素图谱 对 ...
- qq接入和分享android,Android社交登录授权、分享SDK,支持微信、微博和QQ
社交登录授权,分享SDK 支持微信.微博.QQ登录授权 微信好友.微信朋友圈.微博.QQ好友.QQ空间分享 Gradlecompile 'com.elbbbird.android:socialsdk: ...
- android 微博分享需要测试账号密码,Android社交登录授权、分享SDK,支持微信、微博和QQ...
社交登录授权,分享SDK 支持微信.微博.QQ登录授权 微信好友.微信朋友圈.微博.QQ好友.QQ空间分享 Gradle compile 'com.elbbbird.android:socialsdk ...
- Android Facebook登录,进来看就对了
Facebook登录 一.目录 一.开始配置 Facebook Developers面板创建应用和基本配置 集成Facebook SDK 或者 使用依赖配置(二选一即可) 编辑资源和清单 开发秘钥散列 ...
- Android FaceBook登录问题记录
虽然按照官方文档 Facebook 登录 一步一步集成,但测试的时候还是遇到了问题,在这里记录一下.希望给其他出现相同问题的朋友一些借鉴. 问题1 提示没有权限,该账号不是测试账号 解决 在你申请的应 ...
- Android FaceBook登录 分享获取HashKey(密钥散列)的简单方法
1.代码执行获取密钥散列: try {PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageMa ...
- Android FaceBook登录接入--散列密钥获取
官方提供的方法如下: /*** 根据签名文件获取散列密钥* 注意: 如果debug和release签名文件不一致,需要重新生成配置到Facebook*/public static String get ...
- Android Facebook登录的简单实现
1.下载sdk并在facebook开发者平台配置 https://developers.facebook.com/docs/android?locale=zh_CN 2.主要功能代码的实现: priv ...
- (unity)新手接入Facebook登录,分享以及google登录,Android,IOS,OC接入篇
最近接Android,IOS的Facebook登录,分享 以及Google登录,分享流程以及遇到的问题整理. 一. Android接入 google登录 第一步,前往 [ firebase] http ...
- Android facebook VK 登录与分享 开源SDK
自己封好的SDK 直接调用 就可以登录 包含facebook VK 登录分享 首先导入SDK 在项目gradle 添加FB,VK的引用 如果你不需要修改源码 直接导入arr文件 比较方便 reposi ...
最新文章
- [BI项目记]-TFS Express备份和恢复
- XML Schema用法
- select sqlite 唯一_SQLite中的SELECT子句使用通配符
- 微信分享JSSDK-invalid signature签名错误的解决方案
- scale Database
- spring项目使用redis分布式锁解决重复提交问题
- TCP四次握手释放连接
- 【随笔】About QWERTY
- chrome控制台如何把vw显示成px_【CSS】679 rem,em,px的区别和使用场景
- 在打包的时候,创建应用程序池,并自动将程序assign到新创建的池中(MSI制作)
- 海量数据挖掘MMDS week5: 聚类clustering
- android aysncTask面试解析
- 皮尔逊/斯皮尔曼相关系数
- 博弈论数据可用性声明_手机数据恢复,低调使用~
- 服务器布线属于搬迁项目吗,弱电机房服务器搬迁建设整体规划与合理布局
- xp计算机启动检测硬盘,取消WinXP开机自检技巧五则
- Qt:操作系统注册表
- 【转载】office2021
- 三星全新的AI 芯片投入生产,业界首创深度学习处理能力
- html属于非结构化数据吗,什么是结构化数据非结构化数据和半结构化数据
热门文章
- android 随身无线网卡,让小锐WiFi支持USB无线网卡/随身WiFi(附各种“随身wifi”芯片型号)...
- opencv中对图片阀值的操作
- linux服务器离线安装python第三方库
- PSPNet | 语义分割及场景分析
- pscc2019滤镜抽出_「PS-CC2019新版教程」魔棒工具,让你一秒钟完成抠图-基础篇
- Python实现SPGD(SGD)优化算法
- 边界值法中的上点、内点和离点分析
- nnie yolov3 svp
- MATLAB数字水印系统
- DHCPV6 配置实验