来自多个活动的Facebook墙贴

时间:2011-09-09 14:35:24

标签: android facebook

我一直试图从多个页面发帖,但是当我尝试从原始的facebook页面以外的其他页面发帖时,它给了我一个例外java.lang.NullPointerException

我在Facebook页面中调用和创建的方法。

 public void setConnection() {
    mContext = this;
    mFacebook = new Facebook(getResources().getString(R.string.FACEBOOK_ID_TEST));
    mAsyncRunner = new AsyncFacebookRunner(mFacebook);

}

public boolean isSession() {
    sharedPrefs = PreferenceManager.getDefaultSharedPreferences(mContext);
    String access_token = sharedPrefs.getString("access_token", "x");
    Long expires = sharedPrefs.getLong("access_expires", -1);
    Log.d(TAG, access_token);

    if (access_token != null && expires != -1) {
            mFacebook.setAccessToken(access_token);
            mFacebook.setAccessExpires(expires);
    }

    return mFacebook.isSessionValid();

}

public void getID()
{

    Bundle bundle = new Bundle();
    bundle.putString("fields", "birthday");
    try {
        mFacebook.request("me/friends", bundle);
    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
         Log.e("Error in FaceBook Friends List","Exception = "+e.getMessage());
        e.printStackTrace();
    }
     if (isSession()) {
             Log.d(TAG, "sessionValid");
            try {
                mFacebook.request("me/friends", bundle);
            } catch (MalformedURLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                 Log.e("Error in FaceBook Friends List","Exception = "+e.getMessage());
                e.printStackTrace();
            }
     } else {
             // no logged in, so relogin
             Log.d(TAG, "sessionNOTValid, relogin");
             mFacebook.authorize(this, PERMISSIONS, new LoginDialogListener());
     }
}

我可以获得墙贴信息对话框,但显示“发生了错误。请稍后再试”。

请帮帮我。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

我认为实现这一目标的最佳方法是创建一个扩展超类Activity的抽象类,使用它来保存所有的facebook函数。

然后当你想拥有一个具有facebook功能的活动时,你只需要扩展这个抽象类。如果您不确定我的意思,那么请查看教程here,了解如何设置基本的Facebook Activity类。希望这会有所帮助。