1

NullPointerException使用 facebook sdk android 向 facebook 发布消息时,我收到了一条消息。当facebook.authorizeCallback(requestCode, resultCode, data);被调用时,它会与NullPointerException.

我的代码:

public void facebookShare(final String msg)
    {
        facebook = new Facebook(FACEBOOK_APPID);
        facebook.authorize(MainActivity.this,new String[] { FACEBOOK_PERMISSION },

                  new DialogListener() {
                       @Override
                       public void onComplete(Bundle values) {
                            try { 
                                Bundle parameters = new Bundle();
                                parameters.putString("message", msg);
                                String response = facebook.request("me/feed", parameters, "POST");
                                Log.d("fbproblem", "got response: " + response);
                                if (response == null || response.equals("") ||
                                    response.contains("error")) {
                                    Log.d("Login failed", "RETRY");
                                }
                                else {
                                    Log.d("fbproblem","Message posted to your facebook wall!");
                                    Toast.makeText(getApplicationContext(), "Message posted to your facebook wall!", Toast.LENGTH_LONG).show();                                 
                                    //facebook.logout(MainActivity.this);
                                }
                            }catch(Exception e) {
                                //finish();
                                Log.d("fbproblem", e.getMessage());
                            }
                           Log.d("fbproblem", "SUCCESS");
                           //finish();
                       }

                       @Override
                       public void onFacebookError(FacebookError error) {
                           Log.d("fbproblem", error.getMessage());
                           //finish();
                       }                               

                       @Override
                       public void onError(DialogError e) {
                           Log.d("fbproblem", e.getMessage());
                           //finish();
                       }

                       @Override
                       public void onCancel() {
                           Log.d("fbproblem", "");
                           //finish();
                       }
                  }
            );
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        try
        {
            super.onActivityResult(requestCode, resultCode, data);
            facebook.authorizeCallback(requestCode, resultCode, data);
        }
        catch(Exception e)
        {
            Log.d("fbproblem", e.getMessage());
            Toast.makeText(getApplicationContext(), "Something goes wrong Try again Later!!", Toast.LENGTH_LONG).show();
        }
    }
4

1 回答 1

0

请更新您的应用程序的以下代码。

public void loginAndPostToWall() {
    facebook.authorize(this, PERMISSIONS, Facebook.FORCE_DIALOG_AUTH,
            new LoginDialogListener());
}
于 2012-06-08T12:44:12.050 回答