mule in action翻译21 : 3.9 使用Twitter云连接器

 

mule in action翻译21 : 3.9 使用Twitter云连接器

 

    相信本书多数读者对近年来API爆炸式增长深有体会。对一个应用来说若不提供一些用于外部集成的公共的API的话,几乎可以认为这是应用的异常。这是大的原则,但在实践中遇到了我们在本章节开始时所讨论的挑战。甚至采用了严格的标准,如SOAP,客户端代码仍然需要再生成或者在API可以调用之前写好。当然,随后程序员被迫要对每个API进行bug修改、调优等等。

 

    mule的云连接器尝试待解决这些问题。mule把与各种api的集成进行了打包封装,可以使用在mule XML配置文件中,也可以使用在mule studio中。截止目前,云连接器已有Facebook, SAP,Twitter, Salesforce, Twilio,  eBay。来看Prancing Donkey是如何使用Twitter 云连接器来帮助他们进行市场活动的。

 

3.9.1 Twitter

 

    任何人都知道 Twitter 的成功,他使微博服务变的非常流行。像大多数公司一样, Prancing Donkey,采用

Twitter作为其市场营销策略之一。他们已尽可能的做到微博状态的自动更新,包括当向系统中添加新酒时自动发布微博。下面的列表说明了他们是如何做到这点的。(见图3.22)

 

    获取CONSUMER KEYS  在你使用Twitter连接器前,你先要到Twitter网站注册获得CONSUMER KEYS,

    注册地址 https://dev.twitter.com

 

Listing 3.28 Publishing Twitter status updates from a JMS topic 

<!--配置Twitter认证信息-->
<twitter:config consumerKey="12345abcdef" consumerSecret="12345abcdef"/>
<flow name="tweetNewBrews">
    <jms:inbound-endpoint topic="brews.new"/>
	<!--使用给定的mule表达式更新Twitter状态-->
    <twitter:update-status status="Check out #[payload.name] and #[payload.type],our brand new #[map-payload:type]!"/>
</flow>

 
mule in action翻译21 : 3.9 使用Twitter云连接器_第1张图片
 

 这个流订阅了brews.new,并使用消息的payload(本例中是map)更新Twitter状态。

Twitter云连接器暴露了Twitter API的大多数方法。下面的例子展示了如何订阅一些 Twitter 公共状态跟更新。(见图3.23)一些Prancing Donkey的市场人员可以在发布新啤酒之前,通过这些信息观察公众观点 。

 

Listing 3.29 Sampling the Twitter public status update stream 

<flow name="samplePublicStatusUpdates">
	<!--使用Quartz transport每分钟触发一次-->
	<quartz:inbound-endpoint repeatInterval="60000" startDelay="0" jobName="tweetPoller" >
		<quartz:event-generator-job/>
	</quartz:inbound-endpoint>
	<!--获取Twitter 样本-->
	<twitter:get-public-timeline/>
	<!--把集合结果分拆成独立的消息-->
	<collection-splitter/>
	<!--每个消息发送到 JMS的tweets topic-->
	<jms:outbound-endpoint topic="tweets"/>
</flow>

 

上面使用了Quartz传输(这个将在14章深入讲解)每分钟生成一个事件。这个事件将触发Twitter get-public-timeline消息处理器,它将返回一系列的状态更新。你把这个消息集合传递给一个消息拆分器(第5章讨论),消息集合将被拆解为单个的消息。每个消息将按顺序发送到  JMS 的tweets  topic ,然后有各相关方消费这些消息。

 

你可能感兴趣的:(mule in action翻译21 : 3.9 使用Twitter云连接器)