如何用C++ Builder 6快速开发MSN机器人

如何用C++ Builder 6快速开发MSN机器人

如何用C++ Builder 6 快速开发MSN 机器人

本文写的是如何用BCB(Borland C++ Build 6)快速开发一个MSN机器人,以本人写的一款msn机器人xiaosign@hotmail.com“MSN签名管家”为例,描述如何快速开发一例msn机器人。有兴趣的可以在MSN里加xiaosign@hotmail.com为好友,看看这个机器人到底有什么功能。下面就手把手教大家如何把这个机器人做出来。本文的最后有MSN签名机器人的BCB源代码供大家下载。

希望支持我的朋友们给我投一票,投票地址
http://contest.xiaoi.com/listRobot.do?action=showDetail&id=59
1、 准备工作
1.1
到机器人平台服务提供商管理网站( http://my.xiaoi.com )注册帐号 注册成功后会分配一个SPID ,并且会给注册的电子邮箱发送一封注册成功邮件, 此帐号是用来登录机器人平台并管理你的机器人的,比如设置你的机器人的登录状态( 在线、离线等) 、还可以设置机器人的相关信息,比如机器人的签名、昵称,机器人的介绍等。
1.2
用服务提供商分配给你的SPID 登陆机器人平台并下载SDK 本文用的是SDK(C++) ,可以在C++ Builder 6 里直接使用,非常方便 下载的SDK 包其实就是一个头文件和一个dll 文件。里面有现成的函数供你调用,你只要自己去实现机器人的内部处理逻辑就可以了.
1.3
添加机器人帐号 机器人帐号为用户从微软申请的MSN帐号,不知道如何申请的可以到这里去看看如何申请到msn帐号- msn帐号申请指导 。在“SP信息管理”菜单里选择“msn帐号管理”来添加机器人帐号。比如我的机器人就是xiaosign@hotmail.com 添加后你会在列表中看到你的机器人帐号,你可以通过点击“登陆”字样来登陆你的机器人,登陆成功后“登陆”字样将会改变为 “登出”
在你的 MSN 客户端添加该机器人为好友,此时你可看到机器人处于“离开”状态,若有机器人平台启动以后,机器人状态将显示“在线”状态。
系统最多可以添加2个msn帐号,就是说如果你口一个msn帐号的好友已经加满了,可以让别人加另一个帐号为好友,机器人后台是同一个后台,貌似单个msn帐号的好友上限是500人,多个帐号的话就是可以让你的机器人可以更多的人提供服务。

2、 快速开发
2.1
新建
BCB 工程,搭建程序框架 BCB 编译器里File->new->application 新建一个工程,或者可以用SDK 提供方提供的一个DEMO 工程来改写。搭建好你的机器人程序环境。


2.2
添加SDK 库到你的工程 只要在头文件设置
#include "iBotPlatform.h"
确保iBotPlatform.dll 在程序目录下就可以了
2.3
实现代码 机器人实现代码的核心就是处理输入输出两部分
因为机器人平台已经处理了msn 协议流的部分,在这部分代码处理中只要处理机器人收到的用户输入,以及你收到用户的输入以后如何处理的逻辑处理部分即可,非常的简单。
举几个简单的例子, 用户A@hotmai.com 上线以后,平台会收到一个用户上线消息过来,并把用户的签名一起带过来,那我们就知道用户上线了,可以保存用户的最新签名了
用户发送一个消息“help ”过来,程序判断用户的输入是HELP ,就需要封装一条帮助信息回复给用户,不同的消息识别以后走不通的流程即可,是不是非常的简单啊。

下面给出本msn 签名机器人中用到的一段命令接收处理代码:


AnsiString msnaccount =AnsiString(lpUserAccount);

AnsiString question = UpperCase(AnsiString(lpMsg));

AnsiString answer="";


if((question=="HELP")||(question=="?"))// 处理help 命令
{
answer = helpinfo();
}

if(question.Pos("HISTORY")==1) // 处理HISTORY 命令
{
answer =GetHistorySign(msnaccount,getint(question.SubString(8,question.Length())));
}

if(question.Pos("TOP")==1) // 处理TOP 命令
{
answer = HotTopn(getint(question.SubString(4,question.Length())));
}

if(question.Pos("SAME")==1) // 处理SAME 命令
{
answer = QuerySameSign(msnaccount,question);
}

if(question.Pos("YUANFEN")==1) // 处理YUANFEN 命令
{
answer = QuerySameSignUser(msnaccount,question);
}

if(question.Pos("VOTE")==1) // 处理VOTE 命令
{
if(VoteSign(lpUserAccount,getint(question.SubString(5,question.Length()))))
{
answer = " 投票成功";
}
else
{
answer = " 对不起,您今天的投票次数已经到10 次,请明天再投";
}

}

if(question.Pos("RANDOM")==1) // 处理RANDOM 命令
{
answer = GetRandomSign();
}

if(question.Pos("DELETE")==1) // 处理DELETE 命令
{
int id= getint(question.SubString(7,question.Length()));
if(DeleteUserSign(msnaccount,id))
{
answer = " 你已成功删除id 号为"+IntToStr(id)+" 的历史签名";
}
else
{
answer = " 删除历史签名失败!";
}
}

//MainForm->Memo1->Lines->Add(answer);

if(answer.IsEmpty())// 所有命令都解析不上,按help 命令处理
{
answer = GetRandomSign();
answer += AnsiString('/r')+AnsiString('/n')+" 请输入help 或者? 查询帮助";
}

只要在各个分支里面继续处理即可,需要对数据库的操作(本机器人用的ACCESS 数据库)
2.4
MSN 签名管家 放出“msn签名管家”机器人的源代码,供大家下载,下载链接 MSN_robot(发布).rar (325.09 KB)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值