2016-11-25 51 views
1

我目前在玩和验证commercetools api。 我想订阅某个SQS队列,以便将消息推送到此队列。 但是,如果我尝试添加订阅了某种消息类型,API返回:哪些邮件支持商务工具中的订阅

{“的StatusCode”:400,“消息”:“其TYPEID‘DeliveryAdded’未知或不订阅支持。 ”, “错误”:[{ “代码”: “InvalidInput”, “消息”: “该TYPEID 'DeliveryAdded' 是未知或不通过订阅支持”}]与根源

对于resourceTypeId}] ,我使用上面提到的名称(例如DeliveryAdded) 请求本身没有问题。 我尝试了一些不同的类型,总是有相同的结果。是否有任何MessageType,实际上支持订阅?

编辑:

POST https://api.sphere.io/some-project/subscriptions HTTP/1.1

{ 
"destination" : { 
    "type" : "SQS", 
    "accessKey" : "XXXXXXXX", 
    "accessSecret" : "XXXXXXXX", 
    "region" : "EU", 
    "queueUrl" : "https://sqs.eu-central-1.amazonaws.com/XXXXXX/YYYYYYYY" 
}, 
"messages" : [ { 
    "resourceTypeId" : "CustomerCreated" 
} ] 

回答

4

CustomerCreated消息resourceTypeId应该customer

请找支持的资源型IDS的一个列表:
http://dev.commercetools.com/http-api-projects-subscriptions.html#changesubscription

+0

谢谢,事实证明,我将resourceTypeId与类型混淆在一起。但它仍然没有工作。现在得到'{“statusCode”:500,“message”:“糟糕,这不应该发生。”,“errors”:[{“code”:“General”,“message”:“Oops。This should not发生。“}]}]'。除了你提到的内容外,我没有更改请求网址或任何内容。给定的错误消息不起作用:/ – lunatikz

+1

问题在于您在订阅中指定的区域。欧盟地区不存在EU,您需要为AWS欧洲地区使用以下其中一种:eu-west-1,eu-central-1 – tenshi

+0

是的,这样做有诀窍。十分感谢大家。如果某个地区(或其他地区)的供应不正确,我认为api的认可度会很高。 – lunatikz

1

您可以订阅的持久性消息API中记录的信息:http://dev.commercetools.com/http-api-projects-messages.html

所以 “DeliveryAdded”是一条消息。可能是因为您已将Message类型设置为resourceTypeId(对于“DeliveryAdded”消息,这是“订单”,因为它是与订单资源更改有关的消息)。

你可以发布你的请求JSON吗?

PS:您不需要激活持久消息来订阅消息。

+0

我更新了我的问题,additinal我尝试使用CustomerCreated消息。当我在球体上创建用户时,如果我从api中进行轮询,我可以看到该消息。但订阅仍然无法正常工作 – lunatikz