Android 授权facebook权限后,facebook don';t打开
我遵循API facebook指南,以下是代码:Android 授权facebook权限后,facebook don';t打开,android,facebook,Android,Facebook,我遵循API facebook指南,以下是代码: ib2 = (ImageButton) findViewById(R.id.imageButton2); list = new OnClickListener() { public void onClick(View v) { /* * Get existing access_token if any */ mPre
ib2 = (ImageButton) findViewById(R.id.imageButton2);
list = new OnClickListener() {
public void onClick(View v) {
/*
* Get existing access_token if any
*/
mPrefs = getPreferences(MODE_PRIVATE);
String access_token = mPrefs.getString("access_token", null);
long expires = mPrefs.getLong("access_expires", 0);
if(access_token != null) {
facebook.setAccessToken(access_token);
}
if(expires != 0) {
facebook.setAccessExpires(expires);
}
/*
* Only call authorize if the access_token has expired.
*/
if(!facebook.isSessionValid()) {
facebook.authorize(Answer.this, new String[] {"user_about_me","publish_checkins"}, new DialogListener() {
public void onComplete(Bundle values) {
SharedPreferences.Editor editor = mPrefs.edit();
editor.putString("access_token", facebook.getAccessToken());
editor.putLong("access_expires", facebook.getAccessExpires());
editor.commit();
}
public void onFacebookError(FacebookError error) {}
public void onError(DialogError e) {}
public void onCancel() {}
});
}
}};
ib2.setOnClickListener(list);
及
每个人都在正确的位置上,有正确的声明。而且
第一次点击按钮时,facebook要求我接受我的应用程序所需的权限
但是
第二次我点击同一个按钮时,facebook窗口不会打开。为什么会这样
如果我设置了权限,我应该看到授权OK 您是否安装了官方Facebook应用程序?因为如果你这样做了,这是一个错误,我相信他们仍然没有修复 我不知道这是否是问题所在,但您可以尝试强制执行该对话框:
facebook.authorize(Answer.this,新字符串[]{“user\u about\u me”,“publish\u checkins”},facebook.FORCE\u dialog\u AUTH,new DialogListener(){
我不太明白你在这里经历了什么,所以请让我知道它是如何工作的
"The first time doing Onclick on the button, facebook ask me to accept the permissions required for my app."
在这种情况下,由于这是您第一次使用Facebook登录应用程序,您的应用程序没有访问令牌,因此将过期
facebook.isSessionValid()=false
-->将运行facebook.authorize()
Facebook将向您申请许可(因为您的Facebook帐户以前从未允许您的应用)
但是第二次
访问令牌和过期时间已保存到sharepreference,
==>facebook.isSessionValid()为true
==>facebook.authorize()将不会运行
==>似乎已登录
所以facebook窗口不会弹出
如果你想再次看到facebook弹出窗口
1) 清理应用程序的缓存
2) 终止应用程序(sharepreference中的访问令牌将被清除)
然后你可以看到一个facebook登录窗口弹出,但你不会看到premission页面,因为你已经允许你的应用(只需要允许一次)
如果您想再次查看facebook权限页面,只需转到您的facebook,转到隐私设置-->广告、应用程序和网站-->按编辑设置,然后取消对应用程序的授权。
然后,Premission页面将再次弹出,供您下次登录该应用程序时使用我知道,所以策略不是只发布“谢谢”,而是…抱歉策略“谢谢!”。如果应用程序在FB端得到授权,但在Android端没有运行,那么我不仅没有得到任何facebook窗口,而且它也只是..退出,没有任何机会陷阱或做任何其他事情。如果你问我,这是非常不理想的。因此,无论如何,按照你的建议进行了修改,并且由jove进行了很好的运行。最后..问题在哪里facebook SDK错误列表?我相信这不会是最后一个。我很高兴听到我可以帮助别人解决问题!我同意这是一个非常奇怪的错误,而且据我所知,这个解决方法可能不是最可靠的,但对我来说很有效。完整的错误列表可以在这里找到:developers.facebook.com/bugs/
"The first time doing Onclick on the button, facebook ask me to accept the permissions required for my app."