2015-08-13 2 views
0

Я пытаюсь поделиться записью с помощью API Facebook в своем приложении, я создал учетную запись в Facebook Developer, и я положил идентификатор приложения внутри приложения, процесс входа в систему работает нормально, и если Я поделился записью с учетной записью разработчика Facebook, все прекрасно. Но когда я пытаюсь поделиться другим аккаунтом Facebook, я не получил ничего общего. Я использую Facebook SDK 3.5 и ниже код обмена:Обмен сообщениями с использованием Facebook Graph API в Android

/** 
* Post message with image 
* 
* @param imageURl 
*/ 
public void postStatusMessage(byte [] imageURl) { 
    if (checkPermissions(Session.getActiveSession())) { 
     final CustomProgressDialog progress = new CustomProgressDialog(FBActivity.this) ; 
     progress.show() ; 

     // Filling the needed data for the share 
     Bundle parameters = new Bundle() ; 
     parameters.putString("message" , shareText.getText().toString()) ; // message 
     parameters.putString("description" , name) ;// description 
     parameters.putString("link" , linkUrl) ;// link if available 
     parameters.putByteArray("picture" , imageURl) ;// byte array for the image so it can be shared as image not as link 

     Request.Callback callback = new Request.Callback() { 
      public void onCompleted(Response response) { 
       if (response.getError() == null) { 
        // Share post was done succesfully 
        Toast.makeText(FBActivity.this , getString(R.string.statusUpdateSucc) , Toast.LENGTH_LONG).show() ; 
        onlineActionID = (String) response.getGraphObject().getProperty("id") ; 
        shareSuccesfuly = true ; 

       } else { 
        // Fail in share 
        Toast.makeText(FBActivity.this , "" + getString(R.string.statusUpdateFail) , Toast.LENGTH_LONG).show() ; 

       } 
       // Dismiss progress dialog 
       if (progress.isShowing()) 
        progress.dismiss() ; 

       // if share was done sucessfully , navigate back to the previvos page 
       if (shareSuccesfuly) { 
        finish() ; 
       }// end if. 
       else { 
        finish() ; 
       }// end else(). 
      } 
     } ; 

     // Request should have the me/photos tag so we can share photos in the user profile 
     Request request = new Request(Session.getActiveSession() , "me/photos" , parameters , HttpMethod.POST , callback) ; 

     request.executeAsync() ; 
    } else { 
     requestPermissions() ; 
    } 
} 

ответ

1
  1. В SDK вы используете очень старый, я настоятельно рекомендую обновить до последней версии
  2. Вам нужно получить разрешения, необходимые одобрены Facebook, увидеть это doc
  3. После этого, вам нужно сделать ваше приложение жить на вкладке Status Review &
  4. You не должен продолжать запрашивать у пользователей разрешение на публикацию, но вместо этого объяснять, почему это необходимо, см. guidelines here.
Смежные вопросы