【问题标题】:Android - How to update Status on Facebook attaching a pictureAndroid - 如何在 Facebook 上更新状态并附上图片
【发布时间】:2017-02-25 03:48:29
【问题描述】:

我正在使用 Facebook 的 Android SDK。我正在使用 newStatusUpdateRequest() 方法用一条简单的消息更新我的状态,它工作正常。但是我找不到在帖子中附加图片或 URL 的方法。

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 应该是图片的链接。但我不知道如何在同一个请求中同时加入消息和图片。

非常感谢您的宝贵时间

【问题讨论】:

    标签: android facebook sdk attachment


    【解决方案1】:

    好的,我解决了:

    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;
            }
        }
    

    如果有人有更好的解决方案,请随时发表评论

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-22
      • 2012-01-25
      • 2014-09-18
      • 1970-01-01
      • 1970-01-01
      • 2011-06-16
      • 2017-08-20
      • 2015-08-12
      相关资源
      最近更新 更多