问题描述
|
我按照这里的说明进行操作,并且在未安装Facebook App的情况下工作正常。当安装了官方的Facebook App时,在调用
authorize
之后不会调用该回调函数,并且我不找回令牌。安装该应用程序后,将显示闪亮的登录屏幕(来自Facebook应用程序),否则,将显示Webview。
我进行了很多搜索,但是每个教程都说我应该使用链接页面中的示例。我想念什么?
// Facebook connect
public void facebookConnect(View v) {
/* CocktailflowTest AppID */
final Facebook facebook = new Facebook(\"134370943293463\");
facebook.authorize(this,new String[] { \"email\",\"offline_access\" },new DialogListener() {
@Override
public void onFacebookError(FacebookError e) {
e.getMessage();
}
@Override
public void onError(DialogError e) {
Toast.makeText(LaunchActivity.this,e.getMessage(),Toast.LENGTH_SHORT).show();
}
@Override
public void onComplete(Bundle values) {
mFBToken = facebook.getAccesstoken();
getPreferences(MODE_PRIVATE).edit().putString(Prefs.FACEBOOK_TOKEN,mFBToken).commit();
WebService service = new WebService();
WebServiceListener l = new LaunchWebserviceListener();
mDialog = ProgressDialog.show(LaunchActivity.this,\"\",\"Logging in...\");
mDialog.show();
service.connectWithFacebook(l,mFBToken);
}
@Override
public void onCancel() {
Log.i(TAG,\"Facebook connect was cancelled by user.\");
}
});
}
解决方法
您需要在Activity中覆盖onActivityResult方法:
@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data) {
super.onActivityResult(requestCode,resultCode,data);
facebook.authorizeCallback(requestCode,data);
}