我正在为我的Android应用程序使用Login with FaceBook功能。设备中现有的FaceBook应用遇到问题。
我正在使用SessionLoginSample与Facebook登录。它是显示用于Facebook登录的一个自定义视图,并且工作正常,但是如果设备中安装了Facebook应用程序,则它将不显示其自定义视图,而是导航到Facebook应用程序并显示其登录页面(或视图。请参见下图)。),如果我登录Facebook应用程序,则无法从Facebook身份验证过程中获得正确的响应。
Facebook应用程序登录视图
而且,如果设备中未安装任何Facebook应用程序,则它将显示其自定义视图,并且所有针对特定功能的整个流程都工作正常。
SessionLoginSample的自定义视图
即使设备中安装了Facebook应用程序,也有什么方法可以始终显示SessionLoginSample的自定义视图吗?或者任何与此问题相关的替代方法?
我已经在我的应用中通过此代码部分解决了。这将在两种情况下都给出响应,即已安装本机应用程序或未安装本机应用程序。
这是此链接
import com.facebook.AsyncFacebookRunner;
import com.facebook.DialogError;
import com.facebook.Facebook;
import com.facebook.Facebook.DialogListener;
import com.facebook.FacebookError;
import com.facebook.Session;
import com.facebook.SessionState;
facebook = new Facebook( APP_ID );
mAsyncRunner = new AsyncFacebookRunner( facebook );
loginWithFB();
public void loginWithFB()
{
if(!facebook.isSessionValid()) {
facebook.authorize(Login.this, new String[] {"publish_stream","read_stream", "offline_access"}, //Facebook.FORCE_DIALOG_AUTH,
new DialogListener() {
@Override
public void onComplete(Bundle values) {
SharedPreferences.Editor editor = mPrefs.edit();
editor.putString("access_token", facebook.getAccessToken());
editor.putLong("access_expires", facebook.getAccessExpires());
editor.commit();
}
@Override
public void onFacebookError(FacebookError error) {Log.e("FB:","Facebook Error" );}
@Override
public void onError(DialogError e) {Log.e("FB:","Error" );}
@Override
public void onCancel() {}
});
}
}
@Override
public void onActivityResult( int requestCode, int resultCode, Intent data )
{
super.onActivityResult( requestCode, resultCode, data );
facebook.authorizeCallback( requestCode, resultCode, data );
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句