大佬教程收集整理的这篇文章主要介绍了android – facebook login无法通过发布或管理权限(email)发送读取授权请求,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
com.facebook.FacebookException: CAnnot pass a publish or manage permission (email) to a request for read authorization
这是我的活动代码:
public class FacebookLoginActivity extends Activity { private final static String TAG="FB"; private static final List<String> PERMISSIONS=Arrays.asList("email","user_likes","user_status"); private Session.StatusCallBACk statusCallBACk=new SessionStatusCallBACk(); private GraphUser user = null; private Bundle bundle; privatE intent myIntent; private Session session; private static FacebookLoginActivity instance=new FacebookLoginActivity(); @Override public void onCreate(Bundle savedInstanceStatE) { super.onCreate(savedInstanceStatE); if(bundle==null){ bundle=new Bundle(); } Log.v(tag,"in FB onCreate method"); myIntent = this.geTintent(); requestWindowFeature(Window.FEATURE_NO_titlE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); String action = ClientUtil.getElementValue("action"); SetTings.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS); session=openActiveSession(this,true,PERMISSIONS); onClickLogin(); } public void onClickLogin() { Log.v(tag,"click login btn"); session = Session.getActiveSession(); if (!session.isOpened() && !session.isClosed()) { Openrequest openrequest=new Session.openrequest(this); openrequest.setPermissions(PERMISSIONS); openrequest.setCallBACk(statusCallBACk); openrequest.setDefaultAudience(SessionDefaultAudience.FRIENDS); openrequest.setLoginBehavior(SessionLoginBehavior.SSO_WITH_falLBACK); session.openForPublish(openrequest); } else { Log.v(tag,"open active session"); Session.openActiveSession(this,statusCallBACk); } } @Override public void onStart() { super.onStart(); Log.v(tag,"onStart method to add fb CallBACk"); Session.getActiveSession().addCallBACk(statusCallBACk); } @Override public void onStop() { super.onStop(); Log.v(tag,"onStop method to remove fb callBACk"); Session.getActiveSession().removeCallBACk(statusCallBACk); } @Override public void onActivityResult(int requestCode,int resultCode,Intent data) { super.onActivityResult(requestCode,resultCode,data); Log.v(tag,"onActivityResult method to call Fb Session"); Session.getActiveSession().onActivityResult(this,requestCode,data); } @Override protected void onSaveInstanceState(Bundle outStatE) { super.onSaveInstanceState(outStatE); Session session=Session.getActiveSession(); Session.saveSession(session,outStatE); } private static Session openActiveSession(Activity activity,Boolean allowLoginUI,List<String> permissions) { Openrequest openrequest = new openrequest(activity).setPermissions(permissions); Session session = new Session.builder(activity).build(); if (SessionState.CREATED_TOKEN_LOADED.equals(session.getState()) || allowLoginUI) { Session.setActiveSession(session); session.openForPublish(openrequest); return session; } return null; } private class SessionStatusCallBACk implements Session.StatusCallBACk { @Override public void call(Session session,SessionState state,Exception exception) { Log.v(tag,"in StatusCallBACk call method exception is:"+ exception); Log.v(tag,"session state is:"+session.isOpened()); if(user != null) { Log.v(tag,"fb user is exist todo login yyy"); login(); finish(); Log.v(tag,"finish fb activity"); return; } if(session.isOpened()) { Log.v(tag,"session is opened to call FB request"); request.executeMerequestAsync(session,new request.GraphUserCallBACk() { @Override public void onCompleted(GraphUser me,Response responsE) { Log.v(tag,"in GraphUserCallBACk onCompleted method"); Log.v(tag,"GraphUser has value:"+(user!=null)); if(me != null) { user=me; login(); } finish(); Log.v(tag,"finish fb activity"); } }); }else{ Log.v(tag,"session is not open"); if(exception !=null && exception.toString().contains("Canceled")){ Log.v(tag,"cancle login"); bundle.puTint("code",RespondCode.CANCLE); myIntent.putExtras(bundlE); setResult(Activity.RESULT_OK,myIntent); finish(); } } } } }
以上是大佬教程为你收集整理的android – facebook login无法通过发布或管理权限(email)发送读取授权请求全部内容,希望文章能够帮你解决android – facebook login无法通过发布或管理权限(email)发送读取授权请求所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。