Android 集成facebook 登录和分享
,开场白给大脸书
导入SDK
dependencies {
compile 'com.facebook.android:facebook-android-sdk:4.15.0'
app_id在string文件中定义好
<string name="facebook_app_id">[APP_ID]</string>
<string name="fb_login_protocol_scheme">fb[APP_ID]</string>
在清单文件的配置:
<application android:label="@string/app_name" ...>;...<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" /><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>
</application>
接下来就可以写了
登录按钮 fb 中的sdk里自带了一个按钮,如下:
<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" />
它的样式是下面这种
当然你也可以自己定义,但是还是要调用原按钮的回调,你可以像我这样写(当然可以选择无视,跳过):
//这是自定义的点击框,
bindFacebook = ((RelativeLayout) findViewById(R.id.bindFacebook));callbackManager = CallbackManager.Factory.create();//这是new了一个facebook原带的按钮(没有写在xml中)fcLogin = new LoginButton(MyInfoActivity.this);fcLogin.setReadPermissions(Arrays.asList("public_profile", "email"));//自定义控件的点击事件bindFacebook.setOnClickListener(new OnClickListener() {@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1)@Overridepublic void onClick(View v) {if (!isBind){//调用faceb原按钮的点击事件(要求api 最低15(应该是4.0.3吧,差不多)),这样你就可以为所欲为的把按钮调成你喜欢的样子,fcLogin.callOnClick();}}});
为按钮注册回调:
CallbackManager callbackManager;
//
callbackManager = CallbackManager.Factory.create();
LoginButton fcLogin = (LoginButton) findViewById(R.id.login_button);//申请读取用户facebook账户一些信息,fcLogin.setReadPermissions(Arrays.asList("public_profile", "email"));fcLogin.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {@Overridepublic void onSuccess(LoginResult loginResult) {//成功登录
// UIHelper.shoToastMessage(MyInfoActivity.this, "SUCCESS");final AccessToken token = loginResult.getAccessToken();if(null != token){GraphRequest request = GraphRequest.newMeRequest(token,new GraphRequest.GraphJSONObjectCallback() {@Overridepublic void onCompleted(JSONObject object, GraphResponse response) {//object包含了facebook用户的信息,比如id,用户名,//可以绑定处理,也可以其他处理//}});}}@Overridepublic void onCancel() {}@Overridepublic void onError(FacebookException exception) {exception.printStackTrace();}}); //必须调用下面的方法
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);callbackManager.onActivityResult(requestCode, resultCode, data);
}
关于翻墙的工具,推荐一个,是个浏览器的插件,国外的, 叫Tunnello ,每天有200M的流量免费试用,不限期限,像只干浏览网页这种还是不错的,
就不贴地址了,大家自行百度,不需要翻墙哦
关于facebook的分享 请看下一篇文章:
http://blog.csdn.net/sinat_35670989/article/details/77096259
Android 集成facebook 登录和分享相关推荐
- Android集成Facebook登录时遇到的问题invalid key hash.the key hash
一.Facebook:登录功能已停用,我们已停用通过嵌入式浏览器登录Facebook的功能 错误提示: 为保护账户安全,我们已停用通过嵌入式浏览器登录Facebook的功能.若要继续,请更新登录使用的 ...
- (unity)新手接入Facebook登录,分享以及google登录,Android,IOS,OC接入篇
最近接Android,IOS的Facebook登录,分享 以及Google登录,分享流程以及遇到的问题整理. 一. Android接入 google登录 第一步,前往 [ firebase] http ...
- Facebook 登录、分享
第一次做海外项目,遇到需求,需要接入Facebook登录与分享. 只说遇到的麻烦,1.登录,「网址发不了--」 首先,创建应用,这里需要注意,创建完应用后,要按需开放部分权限,否则无法唤起应用, 另外 ...
- Android集成微信登录
Android集成微信登录是比较常见的了,此次我把自己集成的过程总结出来,供大家学习参考. 1.首先需要你去微信开放平台申请对应的APPID,地址https://open.weixin.qq.com/ ...
- Android 集成 Facebook 分享常见问题
Facebook 作为世界上用户量最大的应用之一,很多时候我们可能会将自己应用的数据分享到 facebook上,那么我们就需要集成其 SDK,我们可以直接去集成 Facebook 官方的 SDK,也可 ...
- Android 应用程序集成FaceBook 登录及二次封装
1.首先在Facebook 开发者平台注册一个账号 https://developers.facebook.com/ 开发者后台 https://developers.facebook.com/ap ...
- Android 版 Facebook 登录
Android 版 Facebook SDK 让用户可以通过 Facebook 登录注册您的应用.通过 Facebook 登录您的应用时,用户可以向应用授予权限,以便您可以检索信息或以用户的身份在 F ...
- 视频直播平台源码关于Facebook登录、分享接入流程
现在,视频直播平台移民三方账号登录.分享功能是最基本的功能设置,而且随着互联网技术的发展,很多视频直播平台源码需要对Facebook.Twitter.Line等国外APP进行接入,从而实现用户流量的增 ...
- Android集成友盟社会化分享
现在社会化分享组件有很多友推.Mob的ShareSDK.友盟社会化分享组件等,前面两种以前在做项目的时候用到过,最近的项目需要实现分享视频到各社交平台,对比了这三种组件觉得友盟社会化分享组件更适合这个 ...
最新文章
- AI大牛李飞飞最新去向, 加入Twitter 董事会
- python turtle画圣诞树-Python画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔)
- Linux 3D 编程学习总结
- Swing-BoxLayout用法-入门
- python beautifulreport_Python unittest 之 BeautifulReport可视化报告
- java调用android_Java及Android中常用链式调用写法简单示例
- JUnit5 测试套件示例
- R语音:解决cor.test报错的 'y'必需是数值矢量
- PHP技术亮点,我眼里的THINKPHP5新亮点(1)
- mysql sql使用_MySql简单sql使用
- 【Java并发编程】:Runnable和Thread实现多线程的区别
- Windows7下Edge的首页关闭我的资讯,兴趣等
- centos7 wps安装
- 安全测试之sql注入
- 【移动应用趋势】2022 年值得关注的 15 大移动应用开发趋势
- w ndoWs8pE模式下载,天意PE迷你版V2011.9.9(天意PE系统)下载 - 下载吧
- 你应该知道的10 种跨域解决方案(附终极方案)
- 成交量占比过半 优信拍继续领跑二手车电商B端市场
- 51单片机点亮LED灯以及实现2盏LED灯的交替闪烁
- python 爬虫保存封面_Python爬虫Demo--获取网易云音乐专辑封面