跨 Android 活动共享全局 facebook 对象

问题描述 投票:0回答:2

我正在创建一个全局 Facebook 对象(来自 android-facebook-sdk),以便能够在我的活动中共享它:

public class GlobalVars extends Application {

    public static final String APP_ID = "123456789";    
    public Facebook facebook = new Facebook(APP_ID);

}

在其中一项活动中,我添加了登录按钮,如示例所示:

public class FacebookActivity extends Activity {

    private LoginButton mLoginButton;

    private Facebook mFacebook;    
    private AsyncFacebookRunner mAsyncRunner;    

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        mFacebook = ((GlobalVars)getApplicationContext()).facebook;

        setContentView(R.layout.facebook);
        mLoginButton = (LoginButton) findViewById(R.id.login);
        mText = (TextView) FacebookActivity.this.findViewById(R.id.txt);

        mAsyncRunner = new AsyncFacebookRunner(mFacebook);

        SessionStore.restore(mFacebook, this);
        SessionEvents.addAuthListener(new SampleAuthListener());
        SessionEvents.addLogoutListener(new SampleLogoutListener());
        mLoginButton.init(this, mFacebook);

    }

    ...

}

现在,当我登录并使用相同的 Facebook 对象转到另一个活动时:

public class MainActivity extends WhipemActivity {


    private Facebook mFacebook;    
    private AsyncFacebookRunner mAsyncRunner;   

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        mFacebook = ((GlobalVars)getApplicationContext()).facebook;

    }

    ....

}

并运行请求,例如:

mAsyncRunner = new AsyncFacebookRunner(mFacebook);
mAsyncRunner.request("me/friends", new FriendRequestListener());

我得到一个

Facebook Error: Error validating access token.

怎么了?这是拥有全局 Facebook 对象的正确方法吗?

谢谢。

android facebook global
2个回答
3
投票

jul,在您的新活动中,您需要恢复登录时获取的访问令牌。

SessionStore.restore(mFacebook, this);

SessionStore 通过它创建的 SharedPreferences 对象将访问令牌保存到 SharedPreferences 或从 SharedPreferences 恢复访问令牌。

SessionStore.restore() 获取 SharedPreferences 中保存的访问令牌并将其设置在 Facebook 对象上。

您可以查看“Facebook Example Simple”项目并查看 SessionStore 类,以更好地了解 SessionStore 的工作原理。

facebook-android-sdk/示例/简单


0
投票

请记住,在 Stackhouse 上找不到,但可以通过 Facebook 开发者聚光灯 Sapibelradio 电视媒体登录,这些服务可帮助您与客户保持联系the Famous Actors actresses Band musicals promotional materials movies🎥 recorded music studio Directors correction writer'sadvertising 🧞‍♂️ radio📻listeners global😂

© www.soinside.com 2019 - 2024. All rights reserved.