亚洲必赢app在哪下载NET完成和讯粉丝服务平台接口

By admin in 亚洲必赢app在哪下载 on 2019年1月20日

【小说摘要】
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格局。

亚洲必赢app在哪下载,对此每一趟请求,首先须要验证来源的真假,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 On伊夫ntRequest(IRequestMessage伊夫(Eve)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):用户废除订阅事件音讯

譬如说在每个requestMessage中都能够取得FromUserName,对于微信是不得不保障每个应用内唯一的OpenID,而在虎扑中则是用户的uid。对于文字新闻,requestMessage中有Content属性能够博得用户发送的文字内容,并根据用户发送的不比内容再次回到分化的结果;对于事件音讯有伊芙(Eve)nt属性能够拿走事件类型;对于菜单点击事件和链接音信,则有伊夫ntKey属性可以独家代表菜单事件名称和点击菜单后跳转的Url地址,尤其是对此点击事件,可以依据不相同的伊夫ntKey重返差其余内容;而在用户订阅和注销订阅的措施中可过去和好的数据库中写入有关标记。除了可以重载上述的格局外,还有不少艺术可以重载,在那就不一一介绍了,对于没有单独处理的新闻(如没有重载相应措施或在任哪个地点方开展处理),则默许会重返DefaultResponseMessage中的音信。

要求验证的是,在和讯粉丝服务平马赛,对于用户发送的新闻,唯有Text、Image、Voice和Position(Location)四种档次,而并未Video和Link两种类型;而对此事件新闻,与微信一样的关于注(subscribe)、撤销关切(unsubscribe)、扫描二维码(subscribe或SCAN)以及菜单点击事件(CLICK)和菜单点击链接(VIEW)三种,没有微信的开辟聊天窗口自动上报地理地点音信的风云(LOCATION),可是多了用户关切(follow)和收回关怀(unfollow)几个事件。

 

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

Senparc.WeiXin.MP选取了重载的章程使得极度不难就能促成微信公众号,然则新浪和微信在推送的音信方面具有出入。对于今日头条少的而言,倒无所谓,但对此微博比(鲍伯(Bob)by)微信多的三个事件(关心和收回关怀)就需求做额外的处理了。当然修改Senparc.WeiXin.MP的源代码是一种方案,但对此利用NuGet管理依然不想对原有代码进行改动时,必要采用以下的法门。

出于Senparc.WeiXin.MP本身不扶助follow和unfollow类型,所以经过MessageHandler中的RequestMessage或者On伊芙ntRequest方法中的requestMessage都赢得不到科学的伊芙nt属性,其伊夫(Eve)nt属性始终为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的老版本,RequestMessage伊夫ntBase的继承关系现身了一个张冠李戴(RequestMessage伊夫(Eve)ntBase本应该达成IRequestMessage伊芙(Eve)ntBase但却从未达成)。当事件类型系统不识别时,执行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官方下载 版权所有