Delphi实现飞信控件

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

 

 

有兴趣的,可以到www.52delphi.com下载试用版

 

 

  • 0
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 43
    评论
评论 43
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值