2013-02-06 75 views
1

我需要用户的电子邮件地址,我想在facebook sdk中设置电子邮件许可。android facebook sdk 3.0设置邮件权限?

你可以给我一些想法做到这一点。

我的代码:

@Deprecated 
    public void authorize(Activity activity, String[] permissions, final DialogListener listener) { 
     permissions =new String[] {"offline_access","video_upload","publish_stream","user_photos","email","read_friendlists"};  
     authorize(activity, permissions, DEFAULT_AUTH_ACTIVITY_CODE, SessionLoginBehavior.SSO_WITH_FALLBACK, listener); 
    } 

我就像这样。这是行不通的。

回答

3

试试这个:

you set the permission like 
String[] Permissions = {"email", "offline_access"}; 
+0

这是为你工作吗? –

+0

我想设置权限。 – Jeeva123

+0

您将此权限设置为您的登录屏幕并调用像这样mLoginButton.init(this,AUTHORIZE_ACTIVITY_RESULT_CODE,Utility.mFacebook,permissions); –

1

更改类似下面的代码授权:

public void authorize(Activity activity, String[] permissions, 
     int activityCode, final DialogListener listener) { 

    boolean singleSignOnStarted = false; 

    mAuthDialogListener = listener; 

    // Prefer single sign-on, where available. 
    if (activityCode >= 0) { 
     singleSignOnStarted = startSingleSignOn(activity, mAppId, 
       permissions, activityCode); 
    } 
    // Otherwise fall back to traditional dialog. 
    if (!singleSignOnStarted) { 
     startDialogAuth(activity, permissions); 
    } 
} 
+0

你有明白吗? –

+0

startSingleSignOn和startDialogAuth方法不可用会出错。 – Jeeva123

+0

已获得应用程序ID和开发者帐户 –

0

我已经检查了这个问题,这是很简单的。这里是你想要的东西代码:

Session currentSession = Session.getActiveSession(); 
    if (currentSession == null || currentSession.getState().isClosed()) { 
     Session session = new Session.Builder(context).build(); 
     Session.setActiveSession(session); 
     currentSession = session; 
    } 

    if (currentSession.isOpened()) { 
     // Do whatever u want. User has logged in 

    } else if (!currentSession.isOpened()) { 
     // Ask for username and password 
     OpenRequest op = new Session.OpenRequest((Activity) context); 

     op.setLoginBehavior(SessionLoginBehavior.SUPPRESS_SSO); 
     op.setCallback(null); 

     List<String> permissions = new ArrayList<String>(); 
     permissions.add("publish_stream"); 
     permissions.add("user_likes"); 
     permissions.add("email"); 
     permissions.add("user_birthday"); 
     op.setPermissions(permissions); 

     Session session = new Builder(MainActivity.this).build(); 
     Session.setActiveSession(session); 
     session.openForPublish(op); 
    } 

现在,onActivityResult看看会议是开放的,做你的工作,在那里,喜欢把自己的用户ID,和的access_token一切。

希望这会以某种方式帮助你。