7

我看到有一个新版本的 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..
}

回调应该被调用两次,第一次是为了销毁实际的会话令牌,第二次是为了获取一个新的访问令牌。当然,我的应用程序 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);

4

2 回答 2

1

我只是把这个放在这里给其他人:

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

于 2013-01-17T02:31:00.793 回答
0

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

Android Facebook SDK3.0,会话状态OPENING

于 2014-02-17T14:28:11.767 回答