彩票走势图

Delphi实现飞信控件

转帖|其它|编辑:郝浩|2010-11-19 11:55:03.000|阅读 1037 次

概述:最近,自己有个项目中,需要用到飞信的相关操作(发送短信等)。于是就开始咂摸着写一个飞信的控件出来。飞信的这个协议网络上早就有人分析过,基本上大部分都分析出来了,其他没分析的,自己抓抓包分析分析,也不难。经过几天的工作与摸索,目前基本上1.0版本已经出来了。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

  最近,自己有个项目中,需要用到飞信的相关操作(发送短信等)。于是就开始咂摸着写一个飞信的控件出来。飞信的这个协议网络上早就有人分析过,基本上大部分都分析出来了,其他没分析的,自己抓抓包分析分析,也不难。经过几天的工作与摸索,目前基本上1.0版本已经出来了。目前具备的功能如下:

  1、删除某个飞信好友

  2、添加飞信好友

  3、发送飞信消息

  4、发送手机消息给飞信好友

  5、发送手机信息给自己

  6、修改自己的飞信信息

  7、修改好友的显示信息等

  8、维持在线心跳

  9、获得某手机号的飞信用户信息

  大致属性信息如下:

  

  cmdRequestTimes属性指定命令失败时重试的次数(每次如果发送命令失败,都会重试)

  KeepActiveTime 属性指定保持心跳的心跳包发送频率时间(秒)

  LongMsgSend属性指定发送短信是否以长短信模式发送

  PhoneNum属性指定用户的手机号

  timeOut属性指定超时的时间(秒)

  飞信控件事件:

  

  OnError事件指定错误时候触发的事件,实际格式为:

  OnError(Sender: TObject; var ErrorCode: Integer)

  ErrorCode指定事件的错误代码,如果发生了错误,用户没有通过本事件捕捉,就会抛出异常,目前能处理的错误代码如下:

  300: '网络可能已经断开,请检查';
400: '消息格式错误';
401: '认证失败';
404: '用户不存在';
420: '用户性别设置错误';
442: '密码不能为空,或格式错误';
443: '昵称为空,长度超长或格式错误';
481: '用户已经开通';
452:'用户尚未开通FETION';
500:'服务器错误';

  如果用户指定错误代号为200或者0,就表示成功,讲不会出现异常

  OnGetMsg事件,在接收到飞信好友发送的飞信信息时候触发,参数格式如下

  OnGetMsg(Sender: TObject;FromContact: TContact;MsgDate: TDateTime;Msg: string) ;

  FromContact指定来自哪个飞信好友,TContact是好友联系人类

  MsgDate指定消息发送时间

  Msg指定消息内容

  OnLoged事件指定登录事件,登录完成之后触发的事件

  本事件无论成功与否都会触发。

  OnLoged(Sender: TObject; LogState: TLogState);

  LogState登录状态

  TLogState = (DxLg_Beg,DxLg_FL,DxLg_LgSIP,DxLg_LgOK);

  DxLg_Beg登录开始Begin

  DxLg_FL获取好友列表FriendList

  DxLg_LgSIP登录SIP身份验证

  DxLg_LgOK登录成功

  OnLogEvent事件,登录过程中事件其实应该是OnLoging事件

  LogingEvent(Sender: TObject; LogMsg: string);

  LogMsg指定登录时候回传的消息通知

  OnLogOut事件,登出事件

  OnModifyInfoEvent事件,修改飞信信息事件,修改之后触发

  OnModifyInfoEvent(Sender: TObject; ModifyContact: TContact; ModifyStyle: TModifyStyle; ModifyOk: Boolean);

  ModifyContact指定修改的账号信息

  ModifyStyle指定修改类型

  //修改样式 昵称 生日 心情短语 好友显示名称 删除好友 移动好友分组
TModifyStyle=(MDS_NickName,MDS_Birth,MDS_Moodphrase, MDS_UserDisplayName,MDS_DelContact,MDS_MoveGroup);

  ModifyOk指定是否修改成功

  公共方法属性等:

  function SendMessage(const PhoneNum: string;Msg: String;const SendToPhone: Boolean=False): Boolean;overload;
function SendMessage(Contact: TContact;Msg: String;const SendToPhone: Boolean=False): Boolean;overload;
function SendMessageToMyPhone(Msg: string): Boolean;//给自己手机发信息
property ContactList: TContactList read FContactList;
//本人帐户
property MainContact: TContact read FMainContact;
property FetionNum: string read FFetionNum;
//登录飞信
procedure LoginFetion(Pwd: string);
//登出飞信
function LogOut: Boolean;
procedure Abort;//终止操作

   function DeleteContact(Contact: TContact): Boolean;overload;
function DeleteContact(PhoneNum: String): Boolean;overload;
function DeleteFetioNum(FetionNum: string): Boolean;

   function ContactByPhoneNum(PhoneNum: string;var IsSelfFriend: Boolean): TContact;//根据电话号码获得一个用户帐户信息
function ContactByFetionNum(FetionNumber: string;var IsSelfFriend: Boolean): TContact;//根据飞信号码获得用户帐户信息

   function AddContact(PhoneNum: string;NotifyMsg: string): Boolean;//添加飞信好友
function AddContactByFetionNum(FetionNum: string;NotifyMsg: String): Boolean;//通过飞信号码添加好友

property IsRunning: Boolean read FIsRunning;

   


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:博客转载

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP