我正在尝试使用facebook的SSO为Android制作应用程序,所以首先我制作了一个测试应用来测试他们的api。
我一直关注Android启动教程here on the facebook dev site。一切都运作良好。当应用程序启动时,它会让我使用其传统的webview登录登录facebook(因为facebook未安装在模拟器上)。然后我注意到如果你已经安装了facebook,那么它将使用更精美的屏幕登录。
所以我安装了facebook,打开了应用程序,一切顺利。关闭并重新打开应用程序,然后弹出facebook重新授权屏幕,但这次没有任何信息..
哪个是abit奇怪...所以当我点击'Ok'时会出现..
所以,如果我再次点击'确定',它只是在浏览器中打开Facebook。 如果这与我的代码有关?或Facebook上的东西?我在模拟器和真实设备上都有同样的问题。模拟器正在运行与sdk一起提供的facebooks dev app,该设备拥有来自Android市场的最新facebook应用程序。
代码在这里..
public class Home extends Activity {
Facebook facebook = new Facebook("Blanked the ID :)");
String FILENAME = "app_data";
private SharedPreferences mPrefs;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
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);
if (!facebook.isSessionValid()) {
facebook.authorize(this, new DialogListener() {
@Override
public void onComplete(Bundle values) {
// TODO Auto-generated method stub
}
@Override
public void onFacebookError(FacebookError e) {
// TODO Auto-generated method stub
}
@Override
public void onError(DialogError e) {
// TODO Auto-generated method stub
}
@Override
public void onCancel() {
// TODO Auto-generated method stub
}
});
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
facebook.authorizeCallback(requestCode, resultCode, data);
}
提前感谢您的帮助! (: