Android中FaceBook第三方登录集成

1、首先是要先下载 FaceBook SDK Android 版;

2、导入FaceBookSDK 作为Library 引入到自己的项目中

3、在FaceBook 注册一个 测试应用

4、配置AndroidManifest.xml:

       <activity android:name="com.facebook.LoginActivity"/>
        <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/app_id"/>  

在String 中添加:

<string name="app_id">1548440642074664</string>

5、添加 Facebook 登录按钮 :

 <com.facebook.widget.LoginButton
        android:id="@+id/login_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginBottom="30dp"
        android:layout_marginTop="30dp" />

6、在activity中添加代码:

public class MainActivity extends Activity {
	private static final String TAG = "MainActivity";
	private UiLifecycleHelper uiHelper;

	private Session.StatusCallback callback = new Session.StatusCallback() {
		@Override
		public void call(Session session, SessionState state,
				Exception exception) {
			onSessionStateChange(session, state, exception);
		}
	};

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		uiHelper = new UiLifecycleHelper(MainActivity.this, callback);
		uiHelper.onCreate(savedInstanceState);

		setContentView(R.layout.activity_main);
		LoginButton authButton = (LoginButton) findViewById(R.id.login_button);
		authButton.setReadPermissions(Arrays
				.asList("email","user_likes", "user_status"));

	}

	private void onSessionStateChange(Session session, SessionState state,
			Exception exception) {
		if (state.isOpened()) {
			Log.i(TAG, "Logged in...");
		} else if (state.isClosed()) {
			Log.i(TAG, "Logged out...");
		}
	}

	@Override
	public void onResume() {
		super.onResume();

		// For scenarios where the main activity is launched and user
		// session is not null, the session state change notification
		// may not be triggered. Trigger it if it's open/closed.
		Session session = Session.getActiveSession();
		if (session != null && (session.isOpened() || session.isClosed())) {
			onSessionStateChange(session, session.getState(), null);
		}

		uiHelper.onResume();
	}

	@Override
	public void onActivityResult(int requestCode, int resultCode, Intent data) {
		super.onActivityResult(requestCode, resultCode, data);
		uiHelper.onActivityResult(requestCode, resultCode, data);
	}

	@Override
	public void onPause() {
		super.onPause();
		uiHelper.onPause();
	}

	@Override
	public void onDestroy() {
		super.onDestroy();
		uiHelper.onDestroy();
	}

	@Override
	public void onSaveInstanceState(Bundle outState) {
		super.onSaveInstanceState(outState);
		uiHelper.onSaveInstanceState(outState);
	}

}

如果想得到用户的基本信息:

private void getUserInfo() {
		  String fqlQuery = "SELECT uid,name,email FROM user WHERE uid = me()";
        Bundle params = new Bundle();
        params.putString("q", fqlQuery);
        Request request = new Request(Session.getActiveSession(),
            "/me",
            params,
            HttpMethod.GET,
            new Request.Callback(){
                public void onCompleted(Response response) {
                    String str = response.toString();
                	  Log.i(TAG, str);
                }
        });
        Request.executeBatchAsync(request);
	}
时间: 2024-10-01 00:31:50

Android中FaceBook第三方登录集成的相关文章

友盟社会化Android组件之第三方登录

前段时间公司需要,逐步了新浪微博.腾讯qq.微信等授权登录验证的问题.如果要一个个申请,看文档写代码也是很多流程的.干脆用友盟社会化Android组件之第三方登录.友盟是集成了这些平台,还有其他主流的平台的.我在这里主要讲一下友盟里面微博登录.先看看友盟是怎么介绍自已的. 一.友盟社会化分享介绍 友盟社会化分享组件,帮助移动应用快速具备微信分享,微博分享.登录.评论.喜欢等社会化组件功能,助力产品推广,并提供实时.全面的社会化数据统计分析服务,是国内最大的社会化分享SDK. 支持各大社交平台 精

直播APP开发,扩展类库用户、会话和第三方登录集成

直播APP开发扩展类库用户.会话和第三方登录集成,允许我将些扩展类库进行开源.原来此类库的功能只是当前开发项目中的功能,我现将其抽离成可配置使用的扩展类库,以供大家共享.此类库主要特点有:1.可以和第三方登录集成,包括:微信登录.微博登录.QQ登录2.为客户端提供了直接可以调用的登录接口3.为服务端提供了直接可以检测用户登录态的操作4.支持token落地.高效缓存和分布式的数据库存储5.展示了如何开发一个项目级的类库.包括数据库配置.翻译等温馨提示:此扩展类库还在开发完善中,但已有项目在使用,感

Android中启动第三方应用

主要是通过包名启动第三方应用,获取去包名的方法网上很多,就不多说了. 两种方式启动: 第一种: Intent intent = new Intent(); intent.setClassName("要启动应用的包名", "要启动应用的activity"); startActivity(intent); 第二种: Intent intent = new Intent(); intent = MainActivity.this.getPackageManager().g

【转】Android中引入第三方Jar包的方法(java.lang.NoClassDefFoundError解决办法)

原文网址:http://www.blogjava.net/anchor110/articles/355699.html 1.在工程下新建lib文件夹,将需要的第三方包拷贝进来.2.将引用的第三方包,添加进工作的build path.3.(关键的一步)将lib设为源文件夹.如果不设置,则程序编译可以通过,但运行的时候,会报: java.lang.NoClassDefFoundError # re: Android中引入第三方Jar包的方法(java.lang.NoClassDefFoundErro

Android 实现QQ第三方登录

在项目中需要实现QQ第三方登录,经过一番努力算是写出来了,现在总结以下,以防以后遗忘,能帮到其他童鞋就更好了. 首先肯定是去下载SDK和DEMO http://wiki.open.qq.com/wiki/mobile/SDK下载 本文是我自己整合后的简单DEMO. 先看下效果图吧 小码哥Html5教程,免费随你看 [点击进入] 24小时阅读30000+,48小时视频下载50000+ H5,JS,CSS,0基础学完独立开发网站/APP! 查 看 小码哥Html5教程,免费随你看 [点击进入] 24

yii框架中保存第三方登录信息

(第三方登录) 创建应用,域名,详情请看:http://www.cnblogs.com/xujn/p/5287157.html 效果图: 把API,callback.php,qqlogin.php,图片,都放在web目录下. 第一种方法(mysql方法) call.back.php: <?phpheader('content-type:text/html;charset=utf-8');require_once("./API/qqConnectAPI.php");//放置按钮$q

Android中使用第三方jar包

步骤: 方法1:Eclipse下, 右键工程, Build path, java build path, 选择libraries 在右边的按钮中点击“Add Library” 选择“User library”, 点击“下一步” 点击“User librarys”按钮 在出现的界面中点击“New..”按钮 在弹出的界面中随便起一个名字,点击“确定” 点击“Add jars”按钮选择第三方jar包,点击“确定”完成. 后面的步骤很重要,如果不进行后面的操作. 在Eclipse里显示编译通过,不会有错

为Android游戏接入第三方登录功能

1. “游戏客户端”调用“SDK客户端”的登录功能向“SDK服务端”进行身份认证 2. 验证通过后,“游戏客户端”可得到用户信息,根据游戏逻辑可将用户信息传给“游戏服务器”进行验证 3. “游戏服务器”通过客户端传来的用户信息,一般还需要向“SDK服务器”请求验证用户信息 4. 验证通过后,“游戏服务器”从数据库中查询用户信息,不存在的话直接插入新的用户信息,然后将验证结果和用户信息返回给“游戏客户端” 5. 如果使用了登录会话管理,用户登录后会生成一个新的会话token字符串,把这个token

facebook 第三方登录

文档网址:https://developers.facebook.com/docs/facebook-login/web#loginbutton 主要代码: function testAPI() { FB.api('/me', function(response) {// 获取登录用户的信息:  FB.api('http://graph.facebook.com/'+response.id+'?fields=first_name,last_name,email', function(data)