亚洲必赢app在哪下载.NET兑现微博粉丝服务平台接口

By admin in 亚洲必赢app在哪下载 on 2018年10月3日

【文章摘要】
Senparc.Weixin.MP虽然是微信公众号的SDK,但由易信公众号以及初浪微博粉丝服务平台也供了微信兼容接口,所以呢可以应用其快速实现相应的劳务,当然微博由于和微信在差距,如果未转移原始SDK,则用针对有地方进行调。本文使用Senparc.Weixin.MP快速实现新浪微博粉丝服务平台的接口。

 

【文章索引】

  1. 初浪微博粉丝服务平台接口说明
  2. Senparc.Weixin.MP使用介绍
  3. 对微博特有事件之处理

 

【一、新浪微博粉丝服务平台接口说明】

至于怎么申请新浪微博粉丝服务平台就无详细介绍了,蓝V认证后哪怕足以用粉丝服务平台了,如果欲动用支付模式调用接口的话,还待以微博开放平台创建一个施用,类型选择“微服务应用”->“粉丝服务平台”,待下注册好后,就足以获得到应用之AppKey和AppSecret了。然后以微博的“管理基本”->“粉丝服务”->“高级功能”中可以挑选安装为开模式,与微信公众号不同的凡,微信在动用支付模式时要由定义Token并在印证信息不时以及另外参数放置一起创建签名Signature,而微博于使支付模式时索要填写刚才创建的应用的AppKey,然后创建Signature时使用的是对应的AppSecret。在首先潮设置微博粉丝服务平台时,微博会对设置的服务器地址进行说明,即经过GET方式传入echostr参数,然后你待拿参数返回下,当然你呢得以本着那个根源真伪进行验证。

微博粉丝服务平台的治本界面和微信公众号几乎千篇一律,连图标都酷似。粉丝服务平台与微信的民众号为殊相近,底部菜单,消息事件推送等等都是同一的;与微信相比,在推送的音信遭进一步直接回微博用户之uid,而无是比如说微信一模一样只是回去对于目前下唯一的OpenID。

对此正布置好的粉丝服务平台,默认使用的音讯推送接口是JSON类型的,不过大贴心的凡,微博为供了相当微信的XML接口,如果原本开发过微信公众号的话,可以极大程度地复用代码。如果欲切换不同的格式,请参考 http://open.weibo.com/wiki/Eps/push/set_format
这个文档,需要将access_token和format=xml两只参数POST到接口中,看起老复杂,其实实现起来老粗略,自己写一个要搜索一个能POST参数的程序即可;而access_token也未像微信同样要经过OAuth2.0夺取,而是于微博之粉服务平台的军事管制页面中直接显示(有效期一年),如下图。

亚洲必赢app在哪下载 1

除了,自定义菜单接口也同微信的类似,同样是流传上述的access_token,以及以菜单的JSON代码传入menus参数即可创建菜单。以下重点介绍消息以及事件推送者于基本的始末。

 

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

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。

微博之粉服务平台与微信公众号一致,对于用户发送的内容跟点击菜单等之风波都见面推送到粉丝服务平台开发者模式面临设置的地址。与微信一样,对于首次等验证地址以的是GET请求方式,对于之后之推送使用的都是POST方式。

对于每次要,首先需证实来源之真真假假,Senparc.Weixin.MP已经拿拖欠功能封装于CheckSignature类中,例如利用HttpHandler的语可以直接以如下代码检查来是否管用:

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

当证来源中后,即可使用Senparc.WeiXin.MP的MessageHandler来实现对信息之处理,通常我们用持续该类实现自定义之回升,例如以下代码可以以有用户发送的音信还过来“默认回复消息”:

 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 }

然后我们可以以HttpHanlder中通过如下代码调用MessageHandler,获取处理后的结果并出口:

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 }

而外,在后续的MessageHandler中,还可重载以下方式实现不同的功用:

1、IResponseMessageBase OnTextRequest(RequestMessageText
requestMessage):文字信息
2、IResponseMessageBase OnEventRequest(IRequestMessageEventBase
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):用户取消订阅事件信息

譬如说当每个requestMessage中还可以抱FromUserName,对于微信是不得不管每个应用内唯一的OpenID,而当微博遭遇尽管是用户之uid。对于文字消息,requestMessage中来Content属性可以得到用户发送的亲笔内容,并基于用户发送的不等内容返回不同之结果;对于事件信息来Event属性可以赢得事件类;对于菜单点击事件及链接消息,则生EventKey属性可以分级代表菜单事件名称以及点击菜单后跳转的Url地址,尤其是对点击事件,可以依据不同之EventKey返回不同的情;而当用户订阅和取消订阅的方被而过去温馨的数据库中描绘副有关标记。除了可以重载上述的道外,还有许多道好重载,在当下即不一一介绍了,对于无单独处理的信(如没有重载相应措施要以任何地方开展拍卖),则默认会返回DefaultResponseMessage中的音讯。

得证实的是,在微博粉丝服务平台中,对于用户发送的消息,只有Text、Image、Voice和Position(Location)四种类型,而无Video和Link两栽档次;而对此事件信息,与微信同样的关于流动(subscribe)、取消关注(unsubscribe)、扫描二维码(subscribe或SCAN)以及菜单点击事件(CLICK)和菜单点拍链接(VIEW)几种,没有微信的开拓聊天窗口自动上报地理位置信息的波(LOCATION),但是大多矣用户关注(follow)和收回关注(unfollow)两单事件。

 

【三、对于微博特有事件的拍卖】

Senparc.WeiXin.MP采用了重载的措施叫非常简单就可知促成微信公众号,但是微博和微信在推送的信点抱有出入。对于微博少的而言,倒无所谓,但于微博比微信多的片独事件(关注同取消关注)就需做额外的拍卖了。当然修改Senparc.WeiXin.MP的源代码是千篇一律种植方案,但于下NuGet管理还是未思对原有代码进行修改时,需要动用以下的方。

由于Senparc.WeiXin.MP本身不支持follow和unfollow类型,所以经MessageHandler中之RequestMessage或者OnEventRequest方法吃的requestMessage都获得不顶科学的Event属性,其Event属性始终为Enter,如果我们不对此进行处理的话Senparc.WeiXin.MP也会默认会按Enter事件进行拍卖。所以我们用打老数据遭到读取信息,例如如下代码:

 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 }

自然,对于Senparc.WeiXin.MP的总版本,RequestMessageEventBase的延续关系起了一个破绽百出(RequestMessageEventBase本应该实现IRequestMessageEventBase但却从未兑现)。当事件类系统不识别时,执行MessageHanlder的Execute()会发出空指针错误,更新至最新的7.0.18同随后的本即可缓解拖欠问题。

 

【参考链接】

  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

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 亚洲必赢app官方下载 版权所有