通过通知URL在Meteor中获取POST请求

时间:2016-01-26 20:03:54

标签: javascript post meteor cloudinary

这是我没有经验的。

在我正在构建的管理页面上,可以将图片上传到名为Cloudinary的服务以删除其背景,这个过程最多需要24小时,然后他们会向我发送的某个网址发送POST请求以及请求。

这种格式不适合试验,所以我需要一些帮助。

这是上传图片和发送请求的方式:

Cloudinary.upload(image, {
    folder: "cutouts",
    type: "upload",
    notification_url: "someurl.com"
    background_removal: "remove_the_background"
}, function(error, result) {
       if (!error)
           console.dir(result)
   }
})

问题:我设置为notification_url的内容是什么?即使它在我的网站上的某个地方,在我检查代码是否有效之前是否需要部署它?

根据他们的文档,这是他们将发回的内容的一个例子:

{ 
  "notification_type": "info",
  "info_kind": "remove_the_background",
  "info_status": "complete",
  "public_id": "wood_chair",
  "uploaded_at": "2014-10-26T11:35:22Z",
  "version": 1414316122,
  "url": 
    "http://res.cloudinary.com/demo/image/upload/v1393688588/wood_chair.jpg",
  "secure_url":
    "https://res.cloudinary.com/demo/image/upload/v1393688588/wood_chair.jpg",
  "etag": "a56e9e88c2add15cac1775c1f687bf73"
}

因此,具体而言,我需要访问info_statusurl

问题是,我无法进行实验,而且没有想法如何解决这个问题,因为我根本没有这方面的经验。

以下是他们的文档,如果有任何帮助:http://cloudinary.com/documentation/remove_the_background_image_editing_addon

我该怎么做?

1 个答案:

答案 0 :(得分:1)

在服务器端,设置路由(假设您使用的是铁路由器)来处理来自cloudinary的帖子:

Router.route('/api/cloudinary', { where: 'server' })
    .post(function() {
        var body = this.request.body; // get the body out of the response
        var url = body.url; // based on the JSON you showed
        this.response.statusCode = 200; // set the status code to be returned to cloudinary
        this.response.end(); // send response
    }
);

您可以将/api/cloudinary/更改为您想要的任何内容。如果您的网站为http://www.example.com,那么cloudinary通知网址将为:

http://www.example.com/api/cloudinary