【参考链接】

XML 1

【三 、对于和讯特有事件的处理】

【文章摘要】
Senparc.Weixin.MP尽管是微信公众号的SDK,但出于易信公众号和天涯论坛博客园观众服务平台也提供了微信包容接口,所以也得以选择其火速达成相应的劳务,当然天涯论坛由于与微信存在差别,借使不改动原始SDK,则要求对一些地方开始展览调整。本文使用Senparc.Weixin.MP飞快完毕博客园搜狐听众服务平台的接口。

当然,对于Senparc.WeiXin.MP的老版本,RequestMessage伊芙ntBase的后续关系出现了二个荒谬(RequestMessage伊夫ntBase本应该达成IRequestMessage伊夫ntBase但却尚无落到实处)。当事件类型系统不识别时,执行MessageHanlder的Execute()会生出空指针错误,更新到最新的7.0.18及然后的本子即可化解该难题。

【一 、新浪新浪观者服务平台接口表明】

除却,自定义菜单接口也与微信的接近,同样是传播上述的access_token,以及将菜单的JSON代码传入menus参数即可成立菜单。以下重点介绍新闻和事件推送那个比较基本的内容。

譬如说在各样requestMessage中都能够取得FromUserName,对于微信是不得不有限支撑种种应用内唯一的OpenID,而在今日头条中则是用户的uid。对于文字音信,requestMessage中有Content属性能够博得用户发送的文字内容,并依照用户发送的两样内容再次回到差异的结果;对于事件新闻有伊芙nt属性能够收获事件类型;对于菜单点击事件和链接新闻,则有EventKey属性能够独家表示菜单事件名称和点击菜单后跳转的Url地址,特别是对此点击事件,能够依据差异的伊夫ntKey重回不一致的剧情;而在用户订阅和撤回订阅的艺术中可过去协调的数据库中写入有关标记。除了可以重载上述的格局外,还有好多主意可以重载,在那就不一一介绍了,对于没有单身处理的音信(如没有重载相应措施或在别的地方开展处理),则暗中同意会再次回到DefaultResponseMessage中的音信。

 

Senparc.WeiXin.MP选取了重载的办法使得万分简单就能达成微信公众号,不过天涯论坛和微信在推送的音讯方面抱有出入。对于天涯论坛少的而言,倒无所谓,但对于微Bobby微信多的四个事件(关怀和撤回关切)就须要做额外的拍卖了。当然修改Senparc.WeiXin.MP的源代码是一种方案,但对此利用NuGet管理依然不想对原来代码进行修改时,供给动用以下的方式。

对此刚安顿好的观众服务平台,暗中同意使用的音讯推送接口是JSON类型的,不过很亲密的是,天涯论坛也提供了相当微信的XML接口,假如原本开发过微信公众号的话,能够相当大程度地复用代码。假使急需切换分裂的格式,请参考 http://open.weibo.com/wiki/Eps/push/set_format
那些文书档案,须要将access_token和format=xml多个参数POST到接口中,看起来很复杂,其实落成起来非常粗略,本身写3个也许找叁个能POST参数的次第即可;而access_token也不像微信一样要求经过OAuth2.0去获取,而是在新浪的客官服务平台的治本页面中央直属机关接体现(有效期一年),如下图。

【贰 、Senparc.Weixin.MP使用介绍】

String signature = Request.QueryString["signature"];
String timestamp = Request.QueryString["timestamp"];
String nonce = Request.QueryString["nonce"];
Boolean isRight = CheckSignature.Check(signature, timestamp, nonce, "APP_SECRET");

急需验证的是,在今日头条观者服务平罗利,对于用户发送的音讯,只有Text、Image、Voice和Position(Location)多样档次,而没有Video和Link两种类型;而对于事件新闻,与微信同样的有关切(subscribe)、撤除关怀(unsubscribe)、扫描二维码(subscribe或SCAN)以及菜单点击事件(CLICK)和菜单点击链接(VIEW)二种,没有微信的开辟聊天窗口自动上报地理地方消息的风浪(LOCATION),可是多了用户关心(follow)和注销关怀(unfollow)多少个事件。

然后大家得以在HttpHanlder中经过如下代码调用MessageHandler,获取处理后的结果并出口:

 1 public override IResponseMessageBase OnEventRequest(IRequestMessageEventBase requestMessage)
 2 {
 3     String key = this.RequestDocument.Root.Element("Event").Value.ToLowerInvariant();
 4 
 5     switch (key)
 6     {
 7         case "follow"://关注
 8             return this.OnEvent_FollowRequest(requestMessage);
 9         case "unfollow"://取消关注
10             return this.OnEvent_UnfollowRequest(requestMessage);
11     }
12 
13     //其他事件处理代码
14 
15     return base.OnEventRequest(requestMessage);
16 }
17 
18 public IResponseMessageBase OnEvent_FollowRequest(IRequestMessageEventBase requestMessage)
19 {
20     //处理用户关注事件
21 
22     return this.responseMessage;
23 }
24 public IResponseMessageBase OnEvent_UnfollowRequest(IRequestMessageEventBase requestMessage)
25 {
26     //处理用户取消关注事件
27 
28     return this.responseMessage;
29 }

和讯客官服务平台的田间管理界面与微信公众号差不多同一,连图标都酷似。观者服务平台与微信的群众号也相当相近,底部菜单,消息事件推送等等都以同样的;与微信比较,在推送的消息中更为一贯回到微博用户的uid,而不是像微信一样只回去对于近年来利用唯一的OpenID。

  1. 观众服务平台 –
    微博API:http://open.weibo.com/wiki/%E7%B2%89%E4%B8%9D%E6%9C%8D%E5%8A%A1%E5%B9%B3%E5%8F%B0

对此每一遍请求,首先须求证实来源的真真假假,Senparc.Weixin.MP已经将该功效封装在CheckSignature类中,例如利用HttpHandler的话能够直接行使如下代码检查来源是还是不是有效:

 1 public class WeiboMessageHandler : MessageHandler<MessageContext>
 2 {
 3     private ResponseMessageText responseMessage;
 4 
 5     public WeiboMessageHandler(Stream inputStream)
 6         : base(inputStream)
 7     {
 8         this.responseMessage = this.CreateResponseMessage<ResponseMessageText>();
 9     }
10 
11     public override IResponseMessageBase DefaultResponseMessage(IRequestMessageBase requestMessage)
12     {
13         this.responseMessage.Content = "默认回复消息";
14         return responseMessage;
15     }
16 }

至于怎么申请今日头条今日头条客官服务平台就不详细介绍了,蓝V认证后就能够运用客官服务平台了,假若急需选择支付情势调用接口的话,还须求在和讯开放平台创制2个接纳,类型选择“微服务应用”->“观众服务平台”,待应用注册好后,就足以获得到使用的AppKey和AppSecret了。然后在果壳网的“管理骨干”->“听众服务”->“高级成效”中可以挑选安装为支付格局,与微信公众号不一样的是,微信在行使支付情势时需求自定义Token并在印证新闻时与其他参数放置一起开创签名Signature,而网易在使用支付方式时索要填写刚才创建的应用的AppKey,然后创造Signature时使用的是对应的AppSecret。在第三回设置天涯论坛观者服务平台时,网易会对设置的服务器地址举办认证,即因而GET情势传入echostr参数,然后你须求将参数重临出来,当然你也足以对其来源于真伪举办求证。

【小说索引】

 

  1. 微博腾讯网观众服务平台接口表达
  2. Senparc.Weixin.MP使用介绍
  3. 对此新浪特有事件的处理

 

① 、IResponseMessageBase OnTextRequest(RequestMessageText
requestMessage):文字新闻
② 、IResponseMessageBase On伊芙ntRequest(IRequestMessage伊夫ntBase
requestMessage):事件新闻
3、IResponseMessageBase OnEvent_ClickRequest(RequestMessageEvent_Click
requestMessage):菜单点击事件信息
4、IResponseMessageBase OnEvent_ViewRequest(RequestMessageEvent_View
requestMessage):菜单点击链接新闻
5、IResponseMessageBase
OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe
requestMessage):用户订阅事件音讯
6、IResponseMessageBase
OnEvent_UnsubscribeRequest(RequestMessageEvent_Unsubscribe
requestMessage):用户撤销订阅事件音信

除去,在再三再四的MessageHandler中,仍是能够重载以下办法完结区别的作用:

出于Senparc.WeiXin.MP自身不扶助follow和unfollow类型,所以经过MessageHandler中的RequestMessage或许On伊芙ntRequest方法中的requestMessage都赢得不到正确的伊夫nt属性,其伊芙nt属性始终为Enter,假若大家不对此展开处理的话Senparc.WeiXin.MP也会暗中同意会按Enter事件进行拍卖。所以大家要求从原始数据中读取新闻,例如如下代码:

今日头条的客官服务平台与微信公众号一样,对于用户发送的内容以及点击菜单等的风云都会推送到观者服务平台开发者格局中装置的地点。与微信一模一样,对于首次注脚地址使用的是GET请求方式,对于之后的推送使用的都以POST格局。

1 if (String.Equals("POST", Request.HttpMethod.ToUpperInvariant()))//POST方法进行回复信息
2 {
3     WeiboMessageHandler messageHandler = new WeiboMessageHandler(Request.InputStream);
4     messageHandler.Execute();
5 
6     Response.Output.Write(messageHandler.ResponseDocument.ToString());
7 }

 

Senparc.Weixin.MP是一个基于FreeBSD的开源的微信公众平台SDK,官方网站是:http://weixin.senparc.com,GitHub是:http://github.com/JeffreySu/WeiXinMPSDK。同时,在NuGet上也提供了发布版,能够很便宜的应用NuGet管理。除此之外,笔者也有一份官方的验证文书档案,http://www.cnblogs.com/szw/archive/2013/05/14/weixin-course-index.html

当验证来源有效后,即可使用Senparc.WeiXin.MP的MessageHandler来实现对音讯的处理,平时我们需求继续该类达成自定义的苏醒,例如以下代码能够将具备用户发送的音信都恢复生机“私下认可回复消息”:

 

相关文章

网站地图xml地图