Android facebook sdk 3-获取访问令牌

Android facebook sdk 3-获取访问令牌,android,facebook,Android,Facebook,我正在使用最新的facebook sdk 3。我正在尝试构建一个类: 连接到facebook(应用程序)并返回给我: 1.访问令牌。 2.如果是首次注册或登录。 在我得到1和2后,我不需要连接 我把我想要的facebook应用程序放在字符串中,就像在SDK示例SessionLoginSample中一样 我的代码: private static class FacebookConnector implements Session.StatusCallback{ private stati

我正在使用最新的facebook sdk 3。我正在尝试构建一个类:

连接到facebook(应用程序)并返回给我: 1.访问令牌。 2.如果是首次注册或登录。 在我得到1和2后,我不需要连接

我把我想要的facebook应用程序放在字符串中,就像在SDK示例SessionLoginSample中一样

我的代码:

private static class FacebookConnector implements Session.StatusCallback{

    private static FacebookConnector instance = null;
    private Fragment mFragment;

    public static FacebookConnector getInctance(Fragment fragment){
        if(instance == null){
            instance = new FacebookConnector();
        }
        instance.setFragment(fragment);

        return instance;
    }

    private FacebookConnector(){        
    }

    public Fragment getFragment() {
        return mFragment;
    }

    public void setFragment(Fragment fragment) {
        mFragment = fragment;
    }

    //Facebook fb = new Facebook("app_id");
    //fb.getAccessToken();

    public void connect(){
        Settings.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS);
        Session session = Session.getActiveSession();
        if(session == null){
            session = new Session(mFragment.getActivity());
            Session.setActiveSession(session);
            if (session.getState().equals(SessionState.CREATED_TOKEN_LOADED)) {
                session.openForRead(new Session.OpenRequest(mFragment).setCallback(this));
            }
        }
    }

    @Override
    public void call(Session session, SessionState state, Exception exception) {
        String token = session.getAccessToken();
        System.out.println(token);
    }

}
我有一个例外:

4-03 17:25:47.651: E/AndroidRuntime(689): FATAL EXCEPTION: main
04-03 17:25:47.651: E/AndroidRuntime(689): java.lang.NullPointerException: Argument 'applicationId' cannot be null
04-03 17:25:47.651: E/AndroidRuntime(689):  at com.facebook.internal.Validate.notNull(Validate.java:29)
04-03 17:25:47.651: E/AndroidRuntime(689):  at com.facebook.Session.<init>(Session.java:224)
04-03 17:25:47.651: E/AndroidRuntime(689):  at com.facebook.Session.<init>(Session.java:209)
4-0317:25:47.651:E/AndroidRuntime(689):致命异常:main
04-03 17:25:47.651:E/AndroidRuntime(689):java.lang.NullPointerException:参数“applicationId”不能为null
04-03 17:25:47.651:E/AndroidRuntime(689):在com.facebook.internal.Validate.notNull(Validate.java:29)
04-03 17:25:47.651:E/AndroidRuntime(689):在com.facebook.Session.(Session.java:224)
04-03 17:25:47.651:E/AndroidRuntime(689):在com.facebook.Session上。(Session.java:209)

也许有更简单的解决办法

您是否也向AndroidManifest.xml添加了元数据行?在SessionLoginSample的AndroidManifest中查找com.facebook.sdk.ApplicationId。您的清单中也需要它。是的,我在清单中添加了元数据和appId字符串。我甚至用构建器创建了自己的会话,但它始终处于创建状态。我也遇到了这种情况,您是否设法修复了它?