Facebook SDK 3.0 - 教程

时间:2013-05-08 01:05:46

标签: android facebook-android-sdk facebook-authentication

嘿,有人能指出我在Android的Facebook教程的正确方向吗?他们的开发者网站的教程并不是那么好。

这是我到目前为止所提出的:

public static final int FBResultCode = 100;
private static Session.StatusCallback sharedFBStatusCallback = new Session.StatusCallback()
{
    @Override
    public void call(Session session, SessionState state, Exception exception)
    {
        if(exception != null)
            Log.e("fb error", exception.toString());
        switch(state)
        {
        case OPENED:
                            //login successful
            break;
        case CLOSED:
        case CLOSED_LOGIN_FAILED:
            closeFBSession();
            break;
        default:
            break;
        }
    }
};

public static void openFBSessionWithLoginUI(boolean loginUI)
{
    Session session = Session.getActiveSession();

    if (session != null && 
            !session.isOpened() && 
            !session.isClosed()) 
    {
        ArrayList<String> perms = new ArrayList<String>();
        perms.add("user_likes");
        perms.add("user_birthday");
        perms.add("read_friendlists");

        Session.OpenRequest openRequest = new Session.OpenRequest(rootActivity)
        .setCallback(sharedFBStatusCallback)
        .setDefaultAudience(SessionDefaultAudience.FRIENDS)
        .setLoginBehavior(loginUI? SessionLoginBehavior.SUPPRESS_SSO: SessionLoginBehavior.SSO_ONLY)
        .setRequestCode(FBResultCode)
        .setPermissions(perms);

        session.openForRead(openRequest);
    }
    else 
    {
        Session.openActiveSession(rootActivity, loginUI, sharedFBStatusCallback);
    }

}

private static void closeFBSession()
{
    Session currentSess = Session.getActiveSession();

    if(currentSess != null)
    {
        currentSess.closeAndClearTokenInformation();
    }
}

然而,这会返回错误:

  

E / fb错误(3601):java.lang.UnsupportedOperationException:Session:   尝试打开具有待处理请求的会话。

我做错了什么?或者更好的是,处理fb登录的最佳方法是什么?

2 个答案:

答案 0 :(得分:6)

我使用过本教程并且工作正常:

http://www.androidhive.info/2012/03/android-facebook-connect-tutorial/

还有这个,非常详细。 https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0/

我还使用此逻辑使用现有令牌登录,因为在我的应用程序中,它始终与同一用户连接,而不是某种事件。

Android Facebook SDK - Get user events

答案 1 :(得分:3)

除了Gilson之外,本教程对于那些尝试将facebook连接到他们的Android应用程序的人也很有帮助。

http://ericosgood.com/prog/facebook-android-sdk-tutorial/

http://blog.doityourselfandroid.com/2011/02/28/30-minute-guide-integrating-facebook-android-application/

http://tutotialandroid.blogspot.com/2013/06/easy-facebook-android-sdk-simple.html

Androidhive也是一个非常有用的链接..