eBay Notification介绍
1.简介
"通知服务"(约定为Notification的中文名称),是EbayAPI提供的一个便捷的工具,具有实时性的特点。
其设计思想基于发布-订阅模式。一旦客户端订阅了需要通知的事件,服务器发送通知时,客户端就实时接收从eBay发送的通知。
官网API文档:
http://developer.ebay.com/Devzone/guides/ebayfeatures/Notifications/Notifications.html 此文档应该是最好的第一手资料.
论坛帖子:
http://community.ebay.cn/thread-1200288175-1-1.html 此帖子比较全面.
.NET WebService接收例子:
https://ebaydts.com/eBayKBDetails?KBid=2112 直接可以拿过来用,主要是对SOAP消息接收的配置。
2.Usage
2.1流程描述
1)使用SetNotificationPreference接口去设定订阅的event type、通知地址(email或url)
2)如果选择Email,只需考虑收到邮件之后你将如何处理;
3)如果选择URL,则需要提供一个地址,如ebayapi.company.com的地址来接收,此处注意,端口号尽量使用80(8080和443没有试过,应该可以过),但是用了94,结果死活都收不到。问了ebay的技术,只能用默认端口。
4)当有订阅的event发生时,ebay会主动推送消息去你事先设定好的通知地址上。
2.2 设置接收地址
主要分为提醒邮箱设置、默认接收URL、指定URL(最多25个)三块。
依次分别是AlertEmail,ApplicationURL,DeliveryURLDetailType
- [Test]
- public
void SetNotification_EnableOrDisable_ApplicaitonDelivery_Test() - {
- var context = ApiContextFactory.GetApiContext(token);
- //var context = SandBoxEnvironment.GetApiContextOfSendBox();
- SetNotificationPreferencesCall call = new SetNotificationPreferencesCall(context);
- var enable = EnableCodeType.Enable;
- var type = new ApplicationDeliveryPreferencesType()
- {
- AlertEmail = "mailto://1050244110@qq.com",
- AlertEnable = enable,
- AlertEnableSpecified = true,
- ApplicationURL = "mailto://1050244110@qq.com",
- ApplicationEnable = enable,
- ApplicationEnableSpecified = true,
- DeliveryURLDetails = new DeliveryURLDetailTypeCollection(
- new DeliveryURLDetailType[] {
- new DeliveryURLDetailType()
- {
- Status = enable,
- DeliveryURLName = "seller1_Delivery",
- DeliveryURL = "http://address1.com",
- StatusSpecified = true
- },new DeliveryURLDetailType(){
- Status = enable,
- DeliveryURLName = "seller2_Delivery",
- DeliveryURL = "http://address2.com",
- StatusSpecified = true
- }})
- };
- call.SetNotificationPreferences(type);
- }
查看指定结果
- [Test]
- public
void GetNotification_RoleCodeType_Application_Test() - {
- var context = ApiContextFactory.GetApiContext(token);
- //var context = SandBoxEnvironment.GetApiContextOfSendBox();
- GetNotificationPreferencesCall call = new GetNotificationPreferencesCall(context);
- call.GetNotificationPreferences(NotificationRoleCodeType.Application);
- Console.WriteLine(call.ApplicationDeliveryPreferences);
- Console.WriteLine(call.ApplicationDeliveryPreferences.AlertEmail);
- Console.WriteLine(call.ApplicationDeliveryPreferences.ApplicationURL);
- Console.WriteLine(call.ApplicationDeliveryPreferences.AlertEnable.ToString());
- Console.WriteLine(call.ApplicationDeliveryPreferences.ApplicationEnable.ToString());
- Console.WriteLine(call.ApplicationDeliveryPreferences.DeviceType.ToString());
- Console.WriteLine(call.ApplicationDeliveryPreferences.NotificationPayloadType.ToString());
- foreach (DeliveryURLDetailType item in call.ApplicationDeliveryPreferences.DeliveryURLDetails)
- {
- Console.WriteLine(item.DeliveryURL);
- Console.WriteLine(item.DeliveryURLName);
- Console.WriteLine(item.Status.ToString());
- }
- }
2.3订阅EventType
- [Test]
- public
void SetNotificationPreferences_EnableOrDisbable_EventTypes() - {
- var context = ApiContextFactory.GetApiContext(token);
- //var context = SandBoxEnvironment.GetApiContextOfSendBox();
- SetNotificationPreferencesCall call = new SetNotificationPreferencesCall(context);
- var enable = EnableCodeType.Enable;
- call.DeliveryURLName = "seller1_ Delivery "; //如果指定了,则使用对应名称的URL,反之,则使用 ApplicationURL
- var coll = new NotificationEnableTypeCollection();
- coll.Add(new NotificationEnableType()
- {
- EventEnable = enable,
- EventEnableSpecified = true,
- EventType = NotificationEventTypeCodeType.AuctionCheckoutComplete,
- EventTypeSpecified = true
- });
- coll.Add(new NotificationEnableType()
- {
- EventEnable = enable,
- EventEnableSpecified = true,
- EventType = NotificationEventTypeCodeType.FixedPriceTransaction,
- EventTypeSpecified = true
- });
- coll.Add(new NotificationEnableType()
- {
- EventEnable = enable,
- EventEnableSpecified = true,
- EventType = NotificationEventTypeCodeType.EndOfAuction,
- EventTypeSpecified = true
- });
- call.SetNotificationPreferences(coll);
- }
查看订阅结果
- [Test]
- public
void GetNotification_UserLevel_Test() - {
- var context = ApiContextFactory.GetApiContext(token);
- //var context = SandBoxEnvironment.GetApiContextOfSendBox();
- GetNotificationPreferencesCall call = new GetNotificationPreferencesCall(context);
- call.GetNotificationPreferences(NotificationRoleCodeType.User);
- Console.WriteLine(call.DeliveryURLName);
- Console.WriteLine(call.DetailLevelList.Count);
- foreach (NotificationEnableType item in call.UserDeliveryPreferenceList)
- {
- Console.WriteLine(item.EventEnable.ToString());
- Console.WriteLine(item.EventType.ToString());
- }
- }
2.4 邮件接收结果截图
内容就是XML文档。

3.注意事项
3.1 端口
如果使用http或https的方式,端口号尽量使用默认端口号(80,443)
3.2 token
订阅某个卖家的EventType时,需要指定此卖家的token;
3.3 ApplicationDeliveryPreferencesType
当ApplicationDeliveryPreferencesType设置为Disable时,所有启用的订阅事件将不发送,除非将其又设置为Enable。
eBay Notification介绍的更多相关文章
- Android之Notification介绍
Notification就是在桌面的状态通知栏.这主要涉及三个主要类: Notification:设置通知的各个属性. NotificationManager:负责发送通知和取消通知 Notifica ...
- android Notification介绍
如果要添加一个Notification,可以按照以下几个步骤 1:获取NotificationManager: NotificationManager m_NotificationManager=(N ...
- Rxjs中Notification 介绍
timer(0, 1000) // 计时器,每1000ms发射一个值,初始发射值延迟时间为0s: .pipe( take(5), // 取前5个值 takeWhile(value => valu ...
- Android Notification 版本适配方案
Notification 介绍见:https://developer.android.com/reference/android/app/Notification.html Android api 一 ...
- Android学习笔记总结
第一步: Android(1) - 在 Windows 下搭建 Android 开发环境,以及 Hello World 程序 搭建 Android 的开发环境,以及写一个简单的示例程序 · 在 Win ...
- Jenkis Editable Email Notification Plugin 使用介绍
Jenkis Editable Email Notification Plugin 使用介绍 前言 Jenkins本身提供的Email插件功能实在有限,只能提供当前Job的基本信息,比如成功.失败以及 ...
- Apache DolphinScheduler 架构演进介绍及开源经验分享 - eBay 阮文俊
引言 来自 eBay 的文俊同学在近期的上海开源大数据 Meetup 上做了十分精彩的 "Apache DolphinScheduler 的架构演进" 分享.本次分享有近 200 ...
- 使用eBay API基本步骤介绍
要开始使用eBay API,需要如下基本步骤: 1. 注册开发帐号: https://developer.ebay.com/join/Default.aspx 2. 选择API类型: eB ...
- 介绍一个比较酷东西:HTML5 桌面通知(Notification API)
Notification API 是 HTML5 新增的桌面通知 API,用于向用户显示通知信息.该通知是脱离浏览器的,即使用户没有停留在当前标签页,甚至最小化了浏览器,该通知信息也一样会置顶显示出来 ...
随机推荐
- PHP程序员,因该养成 7 个面向对象的好习惯
在 PHP 编程早期,PHP 代码在本质上是限于面向过程的.过程代码 的特征在于使用过程构建应用程序块.过程通过允许过程之间的调用提供某种程度的重用. 但是,没有面向对象的语言构造,程序员仍然可以把 ...
- mysql.msi安装流程
Mysql For Windows安装图解 演示安装版本:mysql-5.5.20-win32.msi(目前是mysql for windows的最新版)安装环境:Windows Server 200 ...
- 原生Android动作
ACTION_ALL_APPS:打开一个列出所有已安装应用程序的Activity.通常,此操作又启动器处理. ACTION_ANSWER:打开一个处理来电的Activity,通常这个动作是由本地电话拨 ...
- Coursera台大机器学习课程笔记3 – 机器学习的分类和机器学习的可能性
第三讲比较简单,参考:http://www.cnblogs.com/HappyAngel/p/3466527.html 第四讲很抽象,尤其是第四个视频,目的仍然是为了证明机器学习是可能的,不过这个博主 ...
- [转载]WiFi有死角? 巧用旧无线路由器扩展覆盖
怎么了,家里的WiFi有死角?老旧无线路由器的无线覆盖不给力?现在大功率无线产品或双频无线产品的售价并不便宜,而且仅靠一台无线路由器并不能满足多户型家庭的无线覆盖需求.那么,是不是有什么廉价而又实用的 ...
- 快速传输大数据(tar+lz4+pv)
快速传输大数据(tar+lz4+pv) 如果用传统SCP远程拷贝,速度是比较慢的.现在采用lz4压缩传输.LZ4是一个非常快的无损压缩算法,压缩速度在单核300MB/S,可扩展支持多核CPU.它还 ...
- #!/bin/bash
#!/bin/bash是指此脚本使用/bin/bash来解释执行. 其中,#!是一个特殊的表示符,其后,跟着解释此脚本的shell路径. bash只是shell的一种,还有很多其它shell,如:sh ...
- 【Python】python 普通继承方式和super继承方式
Python中对象方法的定义很怪异,第一个参数一般都命名为self(相当于其它语言的this),用于传递对象本身,而在调用的时候则不必显式传递,系统会自动传递.举一个很常见的例子:>>&g ...
- Java for LeetCode 055 Jump Game
Given an array of non-negative integers, you are initially positioned at the first index of the arra ...
- DFS:Curling 2.0(POJ 3009)
冰壶2.0 题目大意:就是给你一个冰壶和一个地图,地图上有石头,冰壶只能沿着x方向和y方向运动,并且要一直运动直到撞到石头为止,并且沿着此方向撞过来会把挡住的石头撞没,冰壶在停的时候可以扔出去一次 ...