2011-03-11 58 views
3

我創建一個全球的Facebook對象(從Android的Facebook的SDK),以便能夠在我的活動分享:在Android活動共享全球的Facebook對象

public class GlobalVars extends Application { 

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

} 

的活動之一,我添加LoginButton,如圖所示的例子:

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對象的正確方法嗎?

謝謝。

回答

3

jul,在您的新活動中,您需要恢復登錄時獲得的訪問令牌。

SessionStore.restore(mFacebook, this); 

SessionStore保存&恢復訪問令牌向/從SharedPreferences經由SharedPreferences對象它創建。

SessionStore.restore()獲取保存在SharedPreferences中的訪問令牌並將其設置在Facebook對象上。

您可以查看「Facebook示例簡單」項目,並查看SessionStore類以更好地瞭解SessionStore的工作方式。

facebook-android-sdk/examples/simple

+0

這很好,但你將如何保存.. mFacebook另一個活動...? – 2012-07-12 09:13:01