无法使用新的3.0版本的facebook sdk登录android

时间:2013-01-17 01:43:39

标签: android facebook facebook-android-sdk

我看到有一个新版本的Facebook SDK(3.0)弃用了旧的 Facebook 类,并引入了一种使用 Session 类登录的新方法。

我使用新的登录API快速编写了一个简单的应用程序:

public class MainActivity extends Activity {

private Session mFacebookSession;

private StatusCallback fbStatusCallback = new StatusCallback() {
    @Override
    public void call(Session session, SessionState state, Exception exception) {
        Log.v("dbg", "state: " + state);
        Log.v("dbg", "session: " + session);
    }
};

public void bc(View view)
{
    mFacebookSession = Session.openActiveSession(this, true, fbStatusCallback);
}
//etc..
}

应该调用两次回调,首先是销毁实际会话令牌,第二次是获取新的访问令牌。 当然,我的app id被设置为我的清单文件中的元数据等。

当我执行代码时,会出现Facebook登录对话框,我输入我的用户名和密码然后关闭。

但是,在我的日志中我只看到了这个:

01-17 03:28:01.587: V/dbg(7002): state: OPENING
01-17 03:28:01.587: V/dbg(7002): session: {Session state:OPENING, token:{AccessToken token:ACCESS_TOKEN_REMOVED permissions:[]}, appId:xxxxxxxxxxxxxxx}

因此,如果我尝试调用 mFacebookSession.getAccessToken(),我会得到一个空字符串(非空)。

什么似乎是问题?

我如何解决(稍后)

我已经覆盖了onActivityResult并调用了 Session.getActiveSession()。onActivityResult(this,requestCode,resultCode,data);

2 个答案:

答案 0 :(得分:1)

我只是想把这个放在其他人身上:

Facebook SDK非常糟糕,让你知道你已经忘记了什么。如果它不适合您,请仔细检查您的Facebook应用程序,确保您没有忘记某些内容或输入错误的值。在我的情况下,在Sterpu Mihai的情况下,appID是错误的,它是哈希键

答案 1 :(得分:0)

另一件会导致同样错误的事情(Token_removed)

Android Facebook SDK3.0, session state OPENING