Android--facebook Login without Loginbutton

Source: Internet
Author: User

1. Introduce Facebook project Lib and declare com.facebook.loginactivity,facebook_app_id in manifest

<activity            android:name= "com.facebook.LoginActivity"            android:label= "@string/app_name"            android: Theme= "@android: Style/theme.translucent.notitlebar"/><meta-data            android:name= " Com.facebook.sdk.ApplicationId "            android:value=" @string/facebook_app_id "/>

2. Call Mode:

1). Initialize Facebooklogin, set callback

Private Facebooklogin Facebooklogin;
Facebooklogin = new Facebooklogin (this); Facebooklogin.setlogincallback (New Facebooklogin.logincallback () { @Override public void Onprelogin () { showloadingdlg (); } @Override public void onloginsuccess (graphuser user) { dismissloadingdlg (); Toast.maketext (Getapplicationcontext (), user.getname () + "========", Toast.length_long). Show (); @Override public void OnError () { dismissloadingdlg (); } });

2). Overriding the Onactivityresult method

@Override public    void Onactivityresult (int requestcode, int resultcode, Intent data)    {        Super.onactivityresult (Requestcode, ResultCode, data);        Facebooklogin.onactivityresult (Requestcode, ResultCode, data);    }

3). Call the Facebooklogin.login () method and call the Onloginsuccess method to return the user information after the login is successful.

Facebooklogin.login ();

3. Tool Class Facebooklogin.java code:

Import Android.app.activity;import Android.content.context;import Android.content.intent;import Com.facebook.request;import Com.facebook.response;import Com.facebook.session;import com.facebook.SessionState;    Import Com.facebook.request.graphusercallback;import Com.facebook.model.graphuser;public class FacebookLogin{    private activity activity;    Public Facebooklogin (activity activity) {this.activity = activity;    } private Logincallback Logincallback; public void Onactivityresult (int requestcode, int resultcode, Intent data) {Onactivityresult (activity, REQUESTC    Ode, ResultCode, data);    }/** * Login */public void login () {login (activity);     }/** * Onactivityresult * @param context * @param requestcode * @param resultcode * @param data */private void Onactivityresult (context context, int requestcode, int resultcode, Intent data) {if (conte XT instanceof Activity) {SessIon.getactivesession (). Onactivityresult (Activity) context, Requestcode, ResultCode, data); }}/** * Login * @param context */private void Login (context context) {Session.openactiv             Esession (Activity) context, True, new Session.statuscallback () {//callback when Session changes state                @Override public void Call (Session session, sessionstate State, Exception Exception) {                if (session.isopened ()) {GetUserInfo (session);        }            }        });        if (logincallback! = null) {Logincallback.onprelogin (); }} private void GetUserInfo (final session session) {Request Request = Request.newmerequest (Session, new            Graphusercallback () {@Override public void oncompleted (graphuser user, Response Response)                   {try { if (logincallback! = null) {if (user! = null) {                        logincallback.onloginsuccess (user);                        } else {logincallback.onerror (); }}} catch (Exception e) {e.                    Printstacktrace ();                Logincallback.onerror ();        }            }        });    Request.executeasync (); }/** * Logout from Facebook */public void Logout () {Session session = Session.getactivesession (        ); if (session! = NULL) {if (!session.isclosed ()) {Session.closeandcleartokenin            Formation ();            }} else {session = new session (activity);            Session.setactivesession (session); Session. Closeandcleartokeninformation ();    }} public void Setlogincallback (Logincallback logincallback) {this.logincallback = Logincallback;        } public interface Logincallback {void Onprelogin ();        void Onloginsuccess (Graphuser user);    void OnError (); }}

  

Android--facebook Login without Loginbutton

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.