2014-12-04 37 views
0

我正在使用Facebook的SDK for Android。我正在使用newStatusUpdateRequest()方法通過簡單的消息更新我的狀態,它工作正常。但我找不到將圖片或URL添加到帖子的方式。Android - 如何更新Facebook上附加圖片的狀態

private void postStatusUpdate() { 
     if (canPresentShareDialog) { 
      FacebookDialog shareDialog = createShareDialogBuilderForLink().build(); 
      uiHelper.trackPendingDialogCall(shareDialog.present()); 
     } else if (user != null && hasPublishPermission()) { 
      final String message = getString(R.string.status_update, user.getFirstName(), (new Date().toString())); 
      Request request = Request 
        .newStatusUpdateRequest(Session.getActiveSession(), message, place, tags, new Request.Callback() { 
         @Override 
         public void onCompleted(Response response) { 
          showPublishResult(message, response.getGraphObject(), response.getError()); 
         } 
        }); 
      request.executeAsync(); 
     } else { 
      pendingAction = PendingAction.POST_STATUS_UPDATE; 
     } 
    } 

我也讀這個環節,所有的Facebook的API方法,但我找不到張貼無論是在我狀態的方式:消息和圖片:

https://developers.facebook.com/docs/reference/android/3.0/class/Request/#newStatusUpdateRequest

有沒有人解決過類似的問題?

更新。我認爲發佈一個畫面,我應該使用的方法:

public static Request newGraphPathRequest(Session session, String graphPath, Callback callback) 

凡graphPath應該是鏈接到圖片。但我不知道如何在同一請求中同時加入消息和圖片。

非常感謝你爲你的時間

回答

0

好,我解決了它:

private void postStatusUpdate() { 
     if (canPresentShareDialog) { 
      FacebookDialog shareDialog = createShareDialogBuilderForLink().build(); 
      uiHelper.trackPendingDialogCall(shareDialog.present()); 
     } else if (user != null && hasPublishPermission()) { 

      Bitmap image = BitmapFactory.decodeResource(this.getResources(), R.drawable.icon); 

      Request request = Request.newUploadPhotoRequest(Session.getActiveSession(), image, new Request.Callback() { 
       @Override 
       public void onCompleted(Response response) { 
        showPublishResult(getString(R.string.photo_post), response.getGraphObject(), response.getError()); 
       } 
      }); 
      final String message = getString(R.string.status_update, user.getFirstName(), (new Date().toString())); 

      Bundle params = request.getParameters(); 
      params.putString("message", message); 

      request.executeAsync(); 

     } else { 
      pendingAction = PendingAction.POST_STATUS_UPDATE; 
     } 
    } 

如果有人得到了一個更好的解決方案,隨意評論