首页 > 解决方案 > 是否可以通过 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. 现在,我正在尝试通过 ESB 序列使用 WSO2 ESB/EI Facebook 连接器上传相同的内容。使用 ESB 连接器,我只能使用 URL 上传 Internet 上的图像。我无法使用 multipart/from-data 从本地桌面上传图像。

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

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

Payload_and_Error_Response

标签: facebook-graph-apiwso2esb

解决方案


以下是从 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>

即使在配置了 albumid 之后,如果您发现同样的问题,请在 EI 服务器中启用有线日志并检查是否将正确的请求传递给 Facebook API。

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


推荐阅读