android facebook sdk - set permissions for openActiveSession

前端 未结 2 1398
我寻月下人不归
我寻月下人不归 2021-01-01 05:56

I am trying to integrate Facebook SDK to an android app. I got the code from Facebook manual. It uses Session.openActiveSession and then request a graph user. How could I re

相关标签:
2条回答
  • 2021-01-01 06:39

    This solves the problem using opensession and extended persmission just once. Facebook SDK 3.5

    Session s = new Session(this);
    Session.setActiveSession(s);
    Session.OpenRequest request = new Session.OpenRequest(this);
    request.setPermissions(Arrays.asList("basic_info","email"));
    request.setCallback( new Session.StatusCallback() {
             // callback when session changes state
             @Override
             public void call(Session session, SessionState state, Exception exception) {
                 if (session.isOpened()) {
                     Request.newMeRequest(session, new Request.GraphUserCallback() {
                             @Override
                             public void onCompleted(GraphUser user, Response response) {
                                 if (user != null) {
                                     Toast.makeText(getApplicationContext(), "User email is:"+user.getProperty("email"), Toast.LENGTH_SHORT).show(); }
                                 else {
                                     Toast.makeText(getApplicationContext(), "Error User Null", Toast.LENGTH_SHORT).show();
                                 }
                             }
                     }).executeAsync();
                 } 
             }
    }); //end of call;
    
    s.openForRead(request); //now do the request above
    
    0 讨论(0)
  • 2021-01-01 06:43

    Try this:

    mCallback = new Session.StatusCallback() {...}; // the code you already have
    
    Session.OpenRequest request = new Session.OpenRequest(mContext);
    request.setPermissions(Arrays.asList("email", "user_birthday"));
    request.setCallback(mCallback );
    
    // get active session
    Session mFacebookSession = Session.getActiveSession();
    if (mFacebookSession == null || mFacebookSession.isClosed()) 
    {
        mFacebookSession = new Session(mContext);
        Session.setActiveSession(mFacebookSession);
    }
    mFacebookSession.openForRead(request);
    
    0 讨论(0)
提交回复
热议问题