是否可以通过WSO2 Facebook ESB连接器将图像从本地桌面/笔记本电脑上传到Facebook

问题描述

我一直在尝试使用WSO2 ESB Facebook连接器将本地系统中的图像上传到Facebook。

下面是我尝试过的事情:

  1. 使用直接的Facebook API(由Facebook提供),我尝试通过两种方式上传图片:

             a. Using Multipart/form-data to upload an image that is in local desktop 
             b. Tried to upload the image which is already there in google image. 
    

通过这两种方式,我都可以上传图片。

  1. 现在,我正尝试使用WSO2 ESB / EI Facebook连接器通过ESB序列上传相同的内容。使用ESB连接器,我只能上传已经在使用URL的互联网上的图像。我无法使用multipart / from-data从本地桌面上传图像。

WSO2 ESB版本-6.3.0 在axis2.xml文件中,消息格式化程序和消息构建器均启用了多部分表单数据。

所附图像是我为ESB中的Facebook连接器传递的有效负载的参考,也是我面临的错误响应。

Payload_and_Error_Response

解决方法

以下是从Facebook官方文档获得的有关照片上传的示例请求。这里请注意,它指出“ 要上传照片,请向/ object-id / photos请求,其中/ object-id可以是用户,页面,事件或相册。” >

curl -i -X POST \
 -d "url=https://www.facebook.com/images/fb_icon_325x325.png" \
 -d "caption=test photo upload" \
 -d "access_token=<user_photos_user_access_token>" \
 "https://graph.facebook.com/v2.11/me/photos"

EI连接器文档提供了以下示例配置[1]。我们可以观察到,在此处albumId也与postPhotoToAlbum操作一起传递。由于您观察到无效的URL错误响应,因此我怀疑您可能没有正确配置这些参数。

<facebook.postPhotoToAlbum>
        <albumId>{$url:album_id}</albumId>
        <apiUrl>https://graph.facebook.com</apiUrl>
        <apiVersion>{$url:apiVersion}</apiVersion>
        <accessToken>{$url:accessToken}</accessToken>
     </facebook.postPhotoToAlbum>

即使配置了相册后,如果仍然遇到相同的问题,也请在EI服务器中启用有线日志,并检查是否将正确的请求传递给了Facebook API。

[1] -https://docs.wso2.com/display/ESBCONNECTORS/Configuring+Facebook+Operations

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...