Android FaceBook sdk 登录接入
最近鼓捣一些外面的东西,学习了下FaceBook sdk的接入过程。当然会用到一些工具才可以进行这些操作的,这里就不多说了。大家可以看看这个Android 版 Facebook 登录官方文档,跟着步骤一步步来就可以了,当然其中也会有很多容易出错的地方。慢慢解决就就可以了。
首先你得有一个facebook的账号,这是必须的。怎么注册,这里就不再演示了。懂得都懂,不懂的也没办法。有了账号之后是要注册成为开发者,新建一个应用,得到应用id,这些都是准备工作。注册好了,界面如下。
这个应用编号你们可以使用的,但是不知道什么时候就失效了。也许我取消了,哈哈哈哈哈哈。
先开始导入依赖包,位置在哪里,不用多说。
implementation 'com.facebook.android:facebook-login:[5,6)'
官方会要求用到这个jcenter()库来存储东西,但是我觉得不是很好,可以用阿里的镜像仓库来代替,下载速度贼快。镜像库如下。镜像库放在buildscript { repositories {}} 其中。直接代替里面的东西就可以了。
maven() {url 'https://maven.aliyun.com/repository/jcenter'}maven(){url 'https://maven.aliyun.com/repository/google'}maven {url 'https://maven.aliyun.com/repository/public'}maven {url 'https://maven.aliyun.com/repository/mapr-public'}maven(){url 'https://jitpack.io'}google()mavenCentral()```
下面的allprojects也可以放一个```java
maven() {url 'https://maven.aliyun.com/repository/jcenter'}maven(){url 'https://maven.aliyun.com/repository/google'}maven {url 'https://maven.aliyun.com/repository/public'}maven {url 'https://maven.aliyun.com/repository/mapr-public'}maven(){url 'https://jitpack.io'}google()
这样下载速度就会快很多。当然你也可以下载一个sdk放到工程目录下。
然后在strings.xml 中写入如下代码
<string name="facebook_app_id">3504692139563307</string>
<string name="fb_login_protocol_scheme">fb3504692139563307</string>
AndroidManifest.xml中写入网络访问权限
<uses-permission android:name="android.permission.INTERNET"/>
AndroidManifest.xml里的Application标签中写入
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/><activity android:name="com.facebook.FacebookActivity"android:configChanges= "keyboard|keyboardHidden|screenLayout|screenSize|orientation"android:label="@string/app_name" /><activity android: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>
在activity_main.xml中写入facebook提供的登录按钮
<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" />
在MainActivity中写入登录处理逻辑
public class MainActivity extends AppCompatActivity {public CallbackManager callbackManager;public LoginButton loginButton;private static final String EMAIL = "email";private static final String USER_POSTS = "user_posts";private static final String AUTH_TYPE = "request";private static final String TAG = "FaceBookLoginTest";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);callbackManager = CallbackManager.Factory.create();loginButton = findViewById(R.id.login_button);loginButton.setPermissions(Arrays.asList(EMAIL, USER_POSTS));loginButton.setAuthType(AUTH_TYPE);// If using in a fragment//loginButton.setFragment(this);// Callback registrationloginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {@Overridepublic void onSuccess(LoginResult loginResult) {// App codeLog.d(TAG, "onSuccess");}@Overridepublic void onCancel() {// App codeLog.d(TAG, "onCancel");}@Overridepublic void onError(FacebookException exception) {// App codeLog.d(TAG, "onError");}});} @Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {callbackManager.onActivityResult(requestCode, resultCode, data);super.onActivityResult(requestCode, resultCode, data);}
}
通过loginButton注册回调,得到登录结果的响应。这是第一种登录方式。
还有一种就是自定义按钮,不用它提供的默认方式。自己来一个按钮可以啦,这就不给出按钮布局了。
MainActivity中需要这样写
login = findViewById(R.id.login_button);login.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {LoginManager.getInstance().logInWithReadPermissions(MainActivity.this, Arrays.asList("public_profile"));}});//注册回调LoginManager.getInstance().registerCallback(callbackManager,new FacebookCallback<LoginResult>() {@Overridepublic void onSuccess(LoginResult loginResult) {// App codeLog.d(TAG, "onSuccess");}@Overridepublic void onCancel() {// App codeLog.d(TAG, "onCancel");}@Overridepublic void onError(FacebookException exception) {// App code Log.d(TAG, "onError");}});
除了登录方式和注册回调方法不同,其他都和第一种方法没有区别。
我用的是雷电模拟器,现在测试一下下。做好的界面如下。
两个按钮都可以直接调用起Facebook登录sdk。如果直接运行的话是不能运行的,需要在模拟器上来个vpn。所以我直接在真机上运行,哈哈哈哈哈哈。
如果在模拟器上装了vpn,也有可能出现这样的情况。
这种需要在自己的手机上或者模拟器上安装一个FaceBookAPP。可能不支持网页直接调用登录。也可以点击Back to Home完成登录。
这里由于我的Facebook账号被封了,无法演示完全。不过进行到这步就可以了。快去试试吧
Android FaceBook sdk 登录接入相关推荐
- Android facebook VK 登录与分享 开源SDK
自己封好的SDK 直接调用 就可以登录 包含facebook VK 登录分享 首先导入SDK 在项目gradle 添加FB,VK的引用 如果你不需要修改源码 直接导入arr文件 比较方便 reposi ...
- Android Facebook原生登录
前言: 在写这篇文章之前先吐槽一下自己的英文水平,之前一直没感觉,因为做的项目都是国内的项目,很少看英文文档.但是,自从换了一个工作之后,做的是国外的项目.并且,写了给第三方写了一个SDK,需要使用G ...
- Android FaceBook原生广告接入教程(精简版)
公司项目主要做海外市场,并且是资讯类的产品,所以接入一些广告公司的广告是一项不错的创收,昨天下午产品告诉我要马上接入Facebook的原生广告需求,于是下午就开始阅读Facebook广告接入的官方开发 ...
- android新浪微博sdk登录获取用户名_多账户的统一登录方案
名称解释 这里的多账户区别于系统级别的,我们讲的多账户系统是指,在我们互联网应用当中,我们的应用会使用多个第三方账号进行登录,必须现在常用的APP(网易云音乐)登录方式包含:网易.微信.QQ 内容 通 ...
- Android Facebook第三方登录 20200529
2020年5月29日09点43分 登录Facebook开发者后台 创建应用 这里点击产品的加号,在右侧选择Facebook登录里面的设置.这样左边的产品下面才会有一个Facebook登录. 打开And ...
- 安卓 Android的Bugly SDK的接入
最近公司给了个任务,让接入Bugly SDK,Bugly是个什么东西呢? 官方是这么解释的,腾讯Bugly,为移动开发者提供专业的异常上报和运营统计,帮助开发者快速发现并解决异常,同时掌握产品运营动态 ...
- Android应用开发:社会化平台登录接入
引言 最近利用闲暇跑通了微博.QQ.G+在Android上的登录接入功能,虽然不至于说坎坷颇多,但是小麻烦也不少,特此记录一下.另,微信的接入是要花300大洋的,所以没有尝试. QQ登录接入 开放平台 ...
- android友盟微信授权登录清除,【转载】Android友盟SDK微信授权登录接入
微信授权登录接入需要先到微信开放平台申请好应用的APPID,交纳300大洋费用得到授权登录权限后才能使用,此处不再赘述. 接入的两种方式 -- 微信SDK接入:使用微信官方SDK接入,需要分" ...
- Android下使用最新FaceBook SDK 3.0(二)使用facebook实现登录注销
前一篇我们学习了集成FacebookSDK到我们项目工程中,这篇来学习一下如何使用facebook来登录! 1.打开 res/layout/activity_main.xml,在布局中添加一个face ...
最新文章
- 在AI人工智能时代,大学或需要重新定位
- 国防科技大学教授:殷建平——计算机科学理论的过去、现在与未来
- efficientdet
- Nginx做web服务器linux内核参数优化
- hadoop 部分问题
- 基于visual c++之windows核心编程代码分析(30)Telnet协议编程
- 《软件开发性能优化系列》之死锁
- Tensorflow的可视化框架:TensorBoard
- Maven常见异常及解决方法---测试代码编译错误
- 链表的基本操作——学生信息管理表
- 做成才还是做许三多——反思程序员职场生涯规划
- 加密所有事物,将数据安全存储在任何地方
- 年面向大学生的 9 个最佳 Chrome 扩展程序
- 大菠萝已经完全变味了
- mac 强制关闭程序
- 华为vrrp默认优先级_网关冗余VRRP
- c语言笔记——黑马程序员上课笔记
- Leetcode 517. Super Washing Machines
- 前端模块化、组件化的理解
- linux服务器创建wss服务 https+wss配置指南
热门文章
- Windows 2003 磁盘分区工具(易我分区大师)
- SQL server2008使用.iso文件安装踩坑
- 如何发一条空白的朋友圈或者app昵称名
- 开源网店程序magento目录结构完整版
- win7万能声卡驱动_win7的早期版本下安装驱动失败
- 获取企业微信access-token
- python全栈开发中级_python全栈开发中级班全程笔记(第二模块)第一部分:文件处理...
- ATF(Arm Trusted Firmware)/TF-A Chapter 02 BL1-ROMCode
- Multisim基础 LC并联选频电路
- 抽丝剥茧看华为p20pro, 三星s9+, 小米8 样张低频彩噪