2017-03-08 1 views
0

에 페이스 북 담벼락에 이미지 게시 오류 페이스 북 담벼락에 이미지가있는 메시지를 내가 소유하고있는 한 페이지에 게시하고 싶습니다.안드로이드 - Facebook SDK 4. +

private void postOnWall() { 

    String PageAccessToken = "EAADpx4TvZCHcBAOw9fA2NaYLkwQUTx1ZCaRaxHN96HcXZCItbCCLiEVm8NmnMDZCJHDeZBR02WfEsVCciY27mtV2aXpZBWEsZC8wzyHZCSKcdQirIXyPuiLCIdCE2Y7oEcd9muMbbUvwWBH9iAzylJDG8VAljZARUG5zKZBeQpphuZCKcZCBecxf96WjwPPyZA5NeqzEZD"; 
    AccessToken accessToken = new AccessToken(PageAccessToken, AccessToken.getCurrentAccessToken().getApplicationId(), AccessToken.getCurrentAccessToken().getUserId(), AccessToken.getCurrentAccessToken().getPermissions(), null, AccessTokenSource.FACEBOOK_APPLICATION_NATIVE, AccessToken.getCurrentAccessToken().getExpires(), null); 

    GraphRequest request = GraphRequest.newPostRequest(accessToken, "me/feed", null, 
      new GraphRequest.Callback() { 
       @Override 
       public void onCompleted(GraphResponse response) { 
        Log.i("facebook","response "+ response); 
        FacebookRequestError error = response.getError(); 
        if (error != null) { 
         Log.e("facebook","Error "+ error); 

        } 
       } 
      }); 

    byte[] data = null; 
    Bitmap bi = mImageBitmap; 
    ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
    bi.compress(Bitmap.CompressFormat.PNG, 100, baos); 
    data = baos.toByteArray(); 

     String mMessage = "Message"; 

     Bundle postParams = request.getParameters(); 
     postParams.putByteArray("picture", data); 
     postParams.putString("message", mMessage); 
     postParams.putString("link", "https://play.google.com/store/apps/details?id=br.com.cfb.doar"); 
     request.setParameters(postParams); 
     request.executeAsync(); 

} 

내가 GraphRequest에서 다음과 같은 응답 받고 있어요 : 내가 잘못

{Response: responseCode: 400, graphObject: null, error: {HttpStatus: 400, errorCode: 100, errorType: OAuthException, errorMessage: Invalid parameter}} 

을하고있어 무엇을 내가 다음 코드를 사용하고 그것을하려면?

미리 감사드립니다.

+0

'사진'은 공개적으로 접근 가능한 사진의 URL이어야합니다. 피드에 게시 할 때 이진 이미지 데이터를 업로드 할 수 없습니다. – CBroe

+0

안녕하세요, 투어 설명 주셔서 감사합니다. 사용자가 방금 찍은 사진을 업로드하고 싶습니다. 그게 가능하니? 방법? 고맙습니다. – Carlos

+0

그러면 실제 사진 업로드 (https://developers.facebook.com/docs/graph-api/reference/user/photos#Creating)를해야하지만 동시에 링크를 게시 할 수는 없습니다 . – CBroe

답변

1

해결책을 찾았습니다. 메서드를 GraphRequest.newUploadPhotoRequest로 변경했습니다. 코드를 찾을 수 있습니다. 나는 그것이 다른 사람들을 도울 수 있기를 바랍니다.

private void postOnWall() { 

    String PageAccessToken = "EAADpx4TvZCHcBAG5KFqOZCojAYwBUma8vSAZBKGqPbZC8HlGr1z1Tgxsay45Gs1CVMVAn7NhrZC0T5i6rWS7ZCpICoVasUKCgCFhZCwgoDxng9szAZA7KbZAWdCVuUySEuGzTIRCTC80gzysj3gK2LNqf4ZCzZBUTWMegMYRmoZCS94ecmtVRZCEYyTU73hLdZCvDY8CEZD"; 
    AccessToken accessToken = new AccessToken(PageAccessToken, AccessToken.getCurrentAccessToken().getApplicationId(), AccessToken.getCurrentAccessToken().getUserId(), AccessToken.getCurrentAccessToken().getPermissions(), null, AccessTokenSource.FACEBOOK_APPLICATION_NATIVE, AccessToken.getCurrentAccessToken().getExpires(), null); 

    GraphRequest request = GraphRequest.newUploadPhotoRequest(accessToken, "me/photos", mImageBitmap, null, null, 
      new GraphRequest.Callback() { 
       @Override 
       public void onCompleted(GraphResponse response) { 
        Log.i("facebook", "response " + response); 
        FacebookRequestError error = response.getError(); 
        if (error != null) { 
         Log.e("facebook", "Error " + error); 
        } else { 
         Toast.makeText(mContext, 
           "Photo uploaded successfully", 
           Toast.LENGTH_LONG).show(); 
        } 
       } 

      }); 

     String mMessage = "Message Text"; 

     Bundle postParams = request.getParameters(); 
     postParams.putString("message", mMessage); 
     request.setParameters(postParams); 

     request.executeAsync();