淘宝消息服务使用介绍

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

消息服务使用介绍

更新时间:2016/03/24 访问次数:229642

∙From淘宝消息服务使用

∙To淘宝消息服务使用

∙常用消息类型说明

∙沙箱消息服务开通

∙消息服务常见问题

消息服务是开放平台为提高应用API调用效率而推出的一种主动推送服务(From淘宝),推送内容包括(淘宝交易、商品、退款等信息),基于该推送服务,应用获取淘宝数据不需再不停轮询API,仅需在接收到淘宝推送的消息时调用API获取即可,大大提高API调用效率和降低API使用费用。同时还提供消息回流服务(To淘宝),应用可将信息回流到淘宝,做商品数源服务等。

From淘宝:即淘宝向外推送淘宝(包括天猫)的交易、商品、退款等官方消息。

To淘宝:即向淘宝回流消息。

那么如何使用消息服务呢?请看以下是消息服务From淘宝和To淘宝两种方式的详细使用说明。

From淘宝消息服务使用

应用订阅消息

进入ISV控制台,在“应用管理->消息服务->订阅消息”页面,选择需要的消息进行订阅,点击相应消息后面的“订阅”即可

订阅消息成功,可以在“我的订阅”中查看已经成功订阅的消息。如果需要取消消息的订阅,直接点击“取消订阅”。

点击消息名称可以查看每个消息返回的详细字段信息。

注意:如果该消息没有权限,则说明应用未开通相关API调用权限,通过点击“申请权限”,进入申请相应的权限包。另如果需要在沙箱开通消息服务使用,可参照本文的[沙箱消息服务开通]章节

给用户开通消息

调用er.permit接口给用户(即淘宝或天猫商家)开通,可以选择只给用户开通部分消息类型,也可全部开通。具体可看该API 入参说明。

备注:

∙给用户开通消息前提是用户已经给应用授权,如未授权,请参考获取用户授权说明。

∙取消用户的消息服务调用er.cancel接口。

∙可以通过接口er.get获取用户已开通消息,入参必须输入is_valid,topics,modified来判断用户授权消息是否成功

∙消息服务API文档:点击这里查看

代码实现接收消息

正式环境服务地址:ws:///

沙箱环境服务地址:ws:///

接收消息,实现方式有两种:通过SDK接收消息、通过API接收消息,推荐采用SDK接收消息。

通过SDK接收消息

目前支持JAVA与.NET语言,其它语言建议采用API接收消息。通过SDK接收消息只需要关注业务的处理,不需要操心消息重发、确认、长连接的重连等操作,SDK会自动处理好一切。

JAVA接口使用说明

1

2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 publicinterface MessageHandler {

/**

* 消息通道客户端收到消息后,会回调该方法处理具体的业务,处理结果可以通过以下两种方式来表述:

*

    *

  • 抛出异常或设置status.fail()表明消息处理失败,需要消息通道服务端重发*
  • 不抛出异常,也没有设置status信息,则表明消息处理成功,消息通道服务端不会再投递此消息

    *

    * @param message 消息内容

    * @param status 处理结果,如果调用status.fail(),消息通道将会择机重发消息;否则,消息通道认为消息处理成功

    * @throws Exception 消息处理失败,消息通道将会择机重发消息

    */

    publicvoid onMessage(Message message, MessageStatus status) throws E xception;

    }

    JAVA使用代码示例

    1

    2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 TmcClient client = new TmcClient("app_key", "app_secret", "default"); // 关于default参考消息分组说明

    client.setMessageHandler(new MessageHandler() {

    publicvoid onMessage(Message message, MessageStatus status) {

    try{

    System.out.println(message.getContent());

    System.out.println(message.getTopic());

    } catch(Exception e) {

    e.printStackTrace();

    status.fail(); // 消息处理失败回滚,服务端需要重发

    }

    }

    });

    client.connect("ws://"); // 消息环境地址:ws://mc.api.tbsand

    /

    注:采用Java main方法在Eclipse里面运行上面的代码测试时,请在client.connect()后面加上Thread.sleep让main线程等待一段时间结束,以便观察消息的实时接收情况,否则main线程结束后,TMC长连接也会跟着断开。如果是在web服务器上运行上面的代码,则不用在client.connect()后面加任何Thread.sleep代码,也不需要在外面包一层while(true)循环,因为web服务器上的主线程只要服务器不关闭都是不会结束的,TMC的长连接会一直保持。

    C#使用示例代码

    1

    2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1TmcClient client = new TmcClient("appkey", "appsecret", "default"); // 关于default参考消息分组说明

    client.OnMessage += (s, e) =>

    {

    try

    {

    Console.WriteLine(e.Message.Topic);

相关文档
最新文档