设为首页 加入收藏

TOP

Android 应用程序集成FaceBook 登录及二次封装(四)
2017-10-12 18:05:09 】 浏览:5985
Tags:Android 应用程序 集成 FaceBook 登录 封装
ic
class FaceBookLogin { 29 30 private Activity activity ; 31 private CallbackManager callbackManager ; 32 private FacebookListener facebookListener ; 33 private List<String> permissions = Collections.<String>emptyList(); 34 private LoginManager loginManager; 35 36 public FaceBookLogin( Activity activity ){ 37 this.activity = activity ; 38 39 //初始化facebook登录服务 40 callbackManager = CallbackManager.Factory.create() ; 41 getLoginManager().registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 42 @Override 43 public void onSuccess(LoginResult loginResult) { 44 // login success 45 AccessToken accessToken = loginResult.getAccessToken(); 46 getLoginInfo(accessToken); 47 } 48 49 @Override 50 public void onCancel() { 51 //取消登录 52 } 53 54 @Override 55 public void onError(FacebookException error) { 56 //登录出错 57 } 58 }); 59 60 permissions = Arrays 61 .asList("email", "user_likes", "user_status", "user_photos", "user_birthday", "public_profile", "user_friends") ; 62 } 63 64 /** 65 * 登录 66 */ 67 public void login(){ 68 getLoginManager().logInWithReadPermissions( 69 activity, permissions); 70 } 71 72 /** 73 * 退出 74 */ 75 public void logout(){ 76 String logout = activity.getResources().getString( 77 com.facebook.R.string.com_facebook_loginview_log_out_action); 78 String cancel = activity.getResources().getString( 79 com.facebook.R.string.com_facebook_loginview_cancel_action); 80 String message; 81 Profile profile = Profile.getCurrentProfile(); 82 if (profile != null && profile.getName() != null) { 83 message = String.format( 84 activity.getResources().getString( 85 com.facebook.R.string.com_facebook_loginview_logged_in_as), 86 profile.getName()); 87 } else { 88 message = activity.getResources().getString( 89 com.facebook.R.string.com_facebook_loginview_logged_in_using_facebook); 90 } 91 AlertDialog.Builder builder = new AlertDialog.Builder(activity); 92 builder.setMessage(message) 93 .setCancelable(true) 94 .setPositiveButton(logout, new DialogInterface.OnClickListener() { 95 public void onClick(DialogInterface dialog, int which) { 96 getLoginManager().logOut(); 97 } 98 }) 99 .setNegativeButton(cancel, null); 100 builder.create().show(); 101 } 102 103 /** 104 * 获取登录信息 105 * @param accessToken 106 */ 107 public void getLoginInfo( AccessToken accessToken ){ 108 GraphRequest request = GraphRequest.newMeRequest(accessToken, new GraphRequest.GraphJSONObjectCallback() { 109 @Override 110 public void onCompleted(JSONObject object, GraphResponse response) { 111 if (object != null) { 112 String id = object.optString("id"); //比如:1565455221565 113 String name = object.optString("name"); //比如:Zhang San 114 String gender = object.optString("gender"); //性别:比如 male (男) female (女) 115 String emali = object.optString("email"); //邮箱:比如:56236545@qq.com 116 117 //获取用户头像 118 JSONObject object_pic = object.optJSONObject("picture"); 119 JSONObject object_data = object_pic.optJSONObject("data"); 120 String photo = object_data.optString("url"); 121
首页 上一页 1 2 3 4 5 下一页 尾页 4/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇国外干货!6个方法助你设计出优秀.. 下一篇悬浮对话框的实现

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目