Предупреждение при публикации на стене пользователя с Android - PullRequest
0 голосов
/ 16 ноября 2011

Я использую этот код для публикации на чьей-то стене

try{
                mPrefs = getPreferences(MODE_PRIVATE);
                String access_token = mPrefs.getString("access_token", null);
                long expires = mPrefs.getLong("access_expires", 0);
                facebook = new Facebook(FB_APP_ID);
                mAsyncRunner = new AsyncFacebookRunner(facebook);

                if(access_token != null) {
                    Log.d("ACCESS TOKEN", "Access Token != null");
                    facebook.setAccessToken(access_token);
                }
                if(expires != 0) {
                    facebook.setAccessExpires(expires);
                }

                if(!facebook.isSessionValid()) { 
                    synchronized(facebook){


                        facebook.authorize(FBWallWriterActivity.this,  new String[] {"read_stream", "publish_stream", "offline_access", "user_birthday", "friends_birthday"}, 
                                new MyDialogListener());
                    }
                }

                synchronized (facebook) {

                    while(mPrefs.getString("access_token", null) == null){

                        facebook.wait();
                    }

                    String token = mPrefs.getString("access_token", null);
                    Bundle parameters = new Bundle();
                    JSONObject attachment = new JSONObject();

                    try {
                        attachment.put("message", "Messages");

                    } 
                    catch (JSONException e) {
                        Log.e("FBWallWriterAct", "Error "+e.getMessage());

                    }

                    parameters.putString("message", wallMsg.getText().toString());

                    mAsyncRunner.request(uid+"/feed", parameters, "POST", new RequestListener(){

                        public void onComplete(String response, Object state) {
                            Log.d("text","facebook post complete");

                        }

                        public void onIOException(IOException e, Object state) {
                            Log.d("text","facebook post onIOException");
                        }

                        public void onFileNotFoundException(FileNotFoundException e, Object state) {
                            Log.d("text","facebook post onFileNotFoundException");
                        }

                        public void onMalformedURLException(MalformedURLException e, Object state) {
                            Log.d("text","facebook post onMalformedURLException");
                        }

                        public void onFacebookError(FacebookError e, Object state) {
                            Log.d("text","facebook post error");
                        }

                    }, null);

                }
            }

Когда я пытаюсь опубликовать сообщение, вот журнал, который я получаю:

    11-16 15:59:26.289: W/Bundle(15907): <!>android.os.Bundle 775<!> Key message expected byte[] but value was a java.lang.String.  The default value <null> was returned.
11-16 15:59:26.289: W/Bundle(15907): Attempt to cast generated internal exception:
11-16 15:59:26.289: W/Bundle(15907): java.lang.ClassCastException: java.lang.String
11-16 15:59:26.289: W/Bundle(15907):    at android.os.Bundle.getByteArray(Bundle.java:1317)
11-16 15:59:26.289: W/Bundle(15907):    at com.facebook.android.Util.openUrl(Util.java:155)
11-16 15:59:26.289: W/Bundle(15907):    at com.facebook.android.Facebook.request(Facebook.java:563)
11-16 15:59:26.289: W/Bundle(15907):    at com.facebook.android.AsyncFacebookRunner$2.run(AsyncFacebookRunner.java:253)
11-16 15:59:26.299: W/Bundle(15907): <!>android.os.Bundle 775<!> Key access_token expected byte[] but value was a java.lang.String.  The default value <null> was returned.
11-16 15:59:26.299: W/Bundle(15907): Attempt to cast generated internal exception:
11-16 15:59:26.299: W/Bundle(15907): java.lang.ClassCastException: java.lang.String
11-16 15:59:26.299: W/Bundle(15907):    at android.os.Bundle.getByteArray(Bundle.java:1317)
11-16 15:59:26.299: W/Bundle(15907):    at com.facebook.android.Util.openUrl(Util.java:155)
11-16 15:59:26.299: W/Bundle(15907):    at com.facebook.android.Facebook.request(Facebook.java:563)
11-16 15:59:26.299: W/Bundle(15907):    at com.facebook.android.AsyncFacebookRunner$2.run(AsyncFacebookRunner.java:253)
11-16 15:59:26.299: W/Bundle(15907): <!>android.os.Bundle 775<!> Key format expected byte[] but value was a java.lang.String.  The default value <null> was returned.
11-16 15:59:26.299: W/Bundle(15907): Attempt to cast generated internal exception:
11-16 15:59:26.299: W/Bundle(15907): java.lang.ClassCastException: java.lang.String
11-16 15:59:26.299: W/Bundle(15907):    at android.os.Bundle.getByteArray(Bundle.java:1317)
11-16 15:59:26.299: W/Bundle(15907):    at com.facebook.android.Util.openUrl(Util.java:155)
11-16 15:59:26.299: W/Bundle(15907):    at com.facebook.android.Facebook.request(Facebook.java:563)
11-16 15:59:26.299: W/Bundle(15907):    at com.facebook.android.AsyncFacebookRunner$2.run(AsyncFacebookRunner.java:253)
11-16 15:59:31.009: W/Bundle(15907): <!>android.os.Bundle 775<!> Key message expected byte[] but value was a java.lang.String.  The default value <null> was returned.
11-16 15:59:31.009: W/Bundle(15907): Attempt to cast generated internal exception:
11-16 15:59:31.009: W/Bundle(15907): java.lang.ClassCastException: java.lang.String
11-16 15:59:31.009: W/Bundle(15907):    at android.os.Bundle.getByteArray(Bundle.java:1317)
11-16 15:59:31.009: W/Bundle(15907):    at com.facebook.android.Util.encodePostBody(Util.java:63)
11-16 15:59:31.009: W/Bundle(15907):    at com.facebook.android.Util.openUrl(Util.java:182)
11-16 15:59:31.009: W/Bundle(15907):    at com.facebook.android.Facebook.request(Facebook.java:563)
11-16 15:59:31.009: W/Bundle(15907):    at com.facebook.android.AsyncFacebookRunner$2.run(AsyncFacebookRunner.java:253)
11-16 15:59:31.009: W/Bundle(15907): <!>android.os.Bundle 775<!> Key method expected byte[] but value was a java.lang.String.  The default value <null> was returned.
11-16 15:59:31.009: W/Bundle(15907): Attempt to cast generated internal exception:
11-16 15:59:31.009: W/Bundle(15907): java.lang.ClassCastException: java.lang.String
11-16 15:59:31.009: W/Bundle(15907):    at android.os.Bundle.getByteArray(Bundle.java:1317)
11-16 15:59:31.009: W/Bundle(15907):    at com.facebook.android.Util.encodePostBody(Util.java:63)
11-16 15:59:31.009: W/Bundle(15907):    at com.facebook.android.Util.openUrl(Util.java:182)
11-16 15:59:31.009: W/Bundle(15907):    at com.facebook.android.Facebook.request(Facebook.java:563)
11-16 15:59:31.009: W/Bundle(15907):    at com.facebook.android.AsyncFacebookRunner$2.run(AsyncFacebookRunner.java:253)
11-16 15:59:31.009: W/Bundle(15907): <!>android.os.Bundle 775<!> Key access_token expected byte[] but value was a java.lang.String.  The default value <null> was returned.
11-16 15:59:31.009: W/Bundle(15907): Attempt to cast generated internal exception:
11-16 15:59:31.009: W/Bundle(15907): java.lang.ClassCastException: java.lang.String
11-16 15:59:31.009: W/Bundle(15907):    at android.os.Bundle.getByteArray(Bundle.java:1317)
11-16 15:59:31.009: W/Bundle(15907):    at com.facebook.android.Util.encodePostBody(Util.java:63)
11-16 15:59:31.009: W/Bundle(15907):    at com.facebook.android.Util.openUrl(Util.java:182)
11-16 15:59:31.009: W/Bundle(15907):    at com.facebook.android.Facebook.request(Facebook.java:563)
11-16 15:59:31.009: W/Bundle(15907):    at com.facebook.android.AsyncFacebookRunner$2.run(AsyncFacebookRunner.java:253)
11-16 15:59:31.019: W/Bundle(15907): <!>android.os.Bundle 775<!> Key format expected byte[] but value was a java.lang.String.  The default value <null> was returned.
11-16 15:59:31.019: W/Bundle(15907): Attempt to cast generated internal exception:
11-16 15:59:31.019: W/Bundle(15907): java.lang.ClassCastException: java.lang.String
11-16 15:59:31.019: W/Bundle(15907):    at android.os.Bundle.getByteArray(Bundle.java:1317)
11-16 15:59:31.019: W/Bundle(15907):    at com.facebook.android.Util.encodePostBody(Util.java:63)
11-16 15:59:31.019: W/Bundle(15907):    at com.facebook.android.Util.openUrl(Util.java:182)
11-16 15:59:31.019: W/Bundle(15907):    at com.facebook.android.Facebook.request(Facebook.java:563)
11-16 15:59:31.019: W/Bundle(15907):    at com.facebook.android.AsyncFacebookRunner$2.run(AsyncFacebookRunner.java:253)
11-16 15:59:34.079: D/text(15907): <!>com.ozzem.mybirthday.FBWallWriterActivity$1$1 128<!> facebook post complete

это нормально?

1 Ответ

1 голос
/ 16 ноября 2011

Предполагается, что вы передаете массив byte [] в качестве параметра, когда выполняете запрос, но вы передаете объект String в качестве параметра, что приводит к несовместимой передаче параметров, что приводит к предупреждению, а также к значению null какисключение.

...