全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 阿里云办公 培训与认证 物联网
消息服务

Message操作

更新时间:2017-06-07 13:26:11

PublishMessage

描述

该接口用于发布者向指定的主题发布消息,消息发布到主题后随即会被推送给 Endpoint 消费。

Request

Request 的构造主要由以下几个部分组成:

  • 请求行

    POST /topics/$TopicName/messages HTTP/1.1

  • 特有 Request Header

    无,通用Header请参考 公共参数,签名相关请参考 API签名

  • Request Body

    Request Body 为 XML 格式

参数名称 说明 参数值 选项
MessageBody 消息正文 字符集 Required
MessageTag 消息标签(用于消息过滤) 不超过16个字符的字符串(默认没有标签) Optional
MessageAttributes 消息属性,如果需要推送邮件或短信,则MessageAttributes为必填项 字符集 Optional

如果需要推送到MailEndpoint,MessageAttributes需要包含DirectMail属性。
DirectMail属性的Text内容是Json格式,需要包含以下字段
(字段含义可以参考https://help.aliyun.com/document_detail/29444.html ):

  1. AccountName (必选,发信账号,string)。
  2. Subject (必选,邮件主题,string)。
  3. AddressType (必选,0或1)。
  4. IsHtml(必选,邮件内容是否作为Html处理,0或1)。
  5. ReplyToAddress(必选,0或1)。

如果需要推送到SmsEndpoint,MessageAttributes需要包含DirectSMS属性。
DirectSMS属性的Text内容是Json格式,需要包含以下字段

  1. FreeSignName (必选,短信签名)。
  2. TemplateCode (必选,短信模板ID)。
  3. Type (必选,singleContent或multiContent,表示单发或批量。如果取值为multiContent,则只会被Endpoint为sms:directsms:anonymous 的订阅处理)。
  4. Receiver (如果Type为singleContent且Subscription的Endpoint是sms:directsms:anonymous ,则此项生效且必填,填写接收人的手机号码,多个号码以逗号分隔)。
  5. SmsParams (必选,json格式,一些具体参数。对于singleContent,此处填写格式为{“参数1”:”Value1”,”参数2”:”Value2”};对于multiContent,此处填写格式为{“电话号码1”:{“参数1”:”Value1”,”参数2”:”Value2”}, “电话号码2”:{“参数1”:”Value3”,”参数2”:”Value4”}})。

Response

返回消息有返回状态行、HTTP头和消息体三部分组成

  • HTTP Status Code

    HTTP/1.1 201 Created

  • 特有 Response Header

    无,请参考 调用方式/公共参数

  • Response Body

    返回的结果为 XML 格式,包括 MessageId 和 MessageBodyMD5:

参数名称 说明
MessageId 消息编号,在主题中唯一
MessageBodyMD5 消息正文的 MD5 值

Special Error

错误代码 错误信息 状态码
TopicNotExist The topic you provided does not exist. 404

请求示例:

  1. POST /topics/$TopicName/messages HTTP/1.1
  2. Host: $AccountId.mns.cn-hangzhou.aliyuncs.com
  3. Date: Tue, 08 Dec 2015 06:13:40 GMT
  4. Content-Length:500
  5. Content-Type:text/xml;charset=utf-8
  6. Authorization: MNS 15B4D3461F177624206A:aibzWu1iDEx9LwO56+kHgA3eqmI=
  7. x-mns-version: 2015-06-06
  8. <?xml version="1.0" encoding="utf-8"?>
  9. <Message xmlns="http://mns.aliyuncs.com/doc/v1/">
  10. <MessageBody>Base64 Encoded Result</MessageBody>
  11. <MessageTag>important</MessageTag>
  12. <MessageAttributes>
  13. <DirectMail>{"Subject":"TestMailSubject","AccountName":"direct_mail_account_name@aliyun-inc.com","ReplyToAddress":0,"AddressType":0,"IsHtml":0}</DirectMail>
  14. </MessageAttributes>
  15. </Message>

批量发布短信消息请求示例:

  1. POST /topics/$TopicName/messages HTTP/1.1
  2. Host: $AccountId.mns.cn-hangzhou.aliyuncs.com
  3. Date: Tue, 08 Dec 2015 06:13:40 GMT
  4. Content-Length:500
  5. Content-Type:text/xml;charset=utf-8
  6. Authorization: MNS 15B4D3461F177624206A:aibzWu1iDEx9LwO56+kHgA3eqmI=
  7. x-mns-version: 2015-06-06
  8. <?xml version="1.0" encoding="utf-8"?>
  9. <Message xmlns="http://mns.aliyuncs.com/doc/v1/">
  10. <MessageBody>content</MessageBody>
  11. <MessageAttributes>
  12. <DirectSMS>
  13. {
  14. "FreeSignName":"$value",
  15. "TemplateCode":"$value",
  16. "Type":"multiContent",
  17. "Receiver":"$num1,$num2",
  18. "SmsParams":"{\"$num1\":{\"$key1\":\"$value1\", \"$key2\":\"$value2\"},\"$num2\":{\"$key1\":\"$value1\",\"$key2\":\"$value2\"}}"
  19. }
  20. </DirectSMS>
  21. </MessageAttributes>
  22. </Message>

返回示例:

  1. HTTP/1.1 201 Created
  2. Content-Length:120
  3. Content-Type:text/xml;charset=utf-8
  4. x-mns-request-id:56667514B2B71C9C1600002B
  5. x-mns-version:2015-06-06
  6. <?xml version="1.0" encoding="utf-8"?>
  7. <Message xmlns="http://mns.aliyuncs.com/doc/v1/">
  8. <MessageId>D273CD6A89564E54-1-15180395A19-200000001</MessageId>
  9. <MessageBodyMD5>3AC6DD36D2D6B7283F2F490A09751BFE</MessageBodyMD5>
  10. </Message>
本文导读目录