最近鼓捣一些外面的东西,学习了下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 登录接入相关推荐

  1. Android facebook VK 登录与分享 开源SDK

    自己封好的SDK 直接调用 就可以登录 包含facebook VK 登录分享 首先导入SDK 在项目gradle 添加FB,VK的引用 如果你不需要修改源码 直接导入arr文件 比较方便 reposi ...

  2. Android Facebook原生登录

    前言: 在写这篇文章之前先吐槽一下自己的英文水平,之前一直没感觉,因为做的项目都是国内的项目,很少看英文文档.但是,自从换了一个工作之后,做的是国外的项目.并且,写了给第三方写了一个SDK,需要使用G ...

  3. Android FaceBook原生广告接入教程(精简版)

    公司项目主要做海外市场,并且是资讯类的产品,所以接入一些广告公司的广告是一项不错的创收,昨天下午产品告诉我要马上接入Facebook的原生广告需求,于是下午就开始阅读Facebook广告接入的官方开发 ...

  4. android新浪微博sdk登录获取用户名_多账户的统一登录方案

    名称解释 这里的多账户区别于系统级别的,我们讲的多账户系统是指,在我们互联网应用当中,我们的应用会使用多个第三方账号进行登录,必须现在常用的APP(网易云音乐)登录方式包含:网易.微信.QQ 内容 通 ...

  5. Android Facebook第三方登录 20200529

    2020年5月29日09点43分 登录Facebook开发者后台 创建应用 这里点击产品的加号,在右侧选择Facebook登录里面的设置.这样左边的产品下面才会有一个Facebook登录. 打开And ...

  6. 安卓 Android的Bugly SDK的接入

    最近公司给了个任务,让接入Bugly SDK,Bugly是个什么东西呢? 官方是这么解释的,腾讯Bugly,为移动开发者提供专业的异常上报和运营统计,帮助开发者快速发现并解决异常,同时掌握产品运营动态 ...

  7. Android应用开发:社会化平台登录接入

    引言 最近利用闲暇跑通了微博.QQ.G+在Android上的登录接入功能,虽然不至于说坎坷颇多,但是小麻烦也不少,特此记录一下.另,微信的接入是要花300大洋的,所以没有尝试. QQ登录接入 开放平台 ...

  8. android友盟微信授权登录清除,【转载】Android友盟SDK微信授权登录接入

    微信授权登录接入需要先到微信开放平台申请好应用的APPID,交纳300大洋费用得到授权登录权限后才能使用,此处不再赘述. 接入的两种方式 -- 微信SDK接入:使用微信官方SDK接入,需要分" ...

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

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

最新文章

  1. 在AI人工智能时代,大学或需要重新定位
  2. 国防科技大学教授:殷建平——计算机科学理论的过去、现在与未来
  3. efficientdet
  4. Nginx做web服务器linux内核参数优化
  5. hadoop 部分问题
  6. 基于visual c++之windows核心编程代码分析(30)Telnet协议编程
  7. 《软件开发性能优化系列》之死锁
  8. Tensorflow的可视化框架:TensorBoard
  9. Maven常见异常及解决方法---测试代码编译错误
  10. 链表的基本操作——学生信息管理表
  11. 做成才还是做许三多——反思程序员职场生涯规划
  12. 加密所有事物,将数据安全存储在任何地方
  13. 年面向大学生的 9 个最佳 Chrome 扩展程序
  14. 大菠萝已经完全变味了
  15. mac 强制关闭程序
  16. 华为vrrp默认优先级_网关冗余VRRP
  17. c语言笔记——黑马程序员上课笔记
  18. Leetcode 517. Super Washing Machines
  19. 前端模块化、组件化的理解
  20. linux服务器创建wss服务 https+wss配置指南

热门文章

  1. Windows 2003 磁盘分区工具(易我分区大师)
  2. SQL server2008使用.iso文件安装踩坑
  3. 如何发一条空白的朋友圈或者app昵称名
  4. 开源网店程序magento目录结构完整版
  5. win7万能声卡驱动_win7的早期版本下安装驱动失败
  6. 获取企业微信access-token
  7. python全栈开发中级_python全栈开发中级班全程笔记(第二模块)第一部分:文件处理...
  8. ATF(Arm Trusted Firmware)/TF-A Chapter 02 BL1-ROMCode
  9. Multisim基础 LC并联选频电路
  10. 抽丝剥茧看华为p20pro, 三星s9+, 小米8 样张低频彩噪