捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  粤ICP备10103342号-1 DELPHI盒子 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 盒子检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
 
广告
评论:Delphi版飞信GreenFetion源码 修正
hmilyygq 35770 2008/10/14 14:49:31
to ghs_79: 分享代码是因为对Delphi的热爱,希望对Delphi和盒子的发展贡献自己的一份力量

to zgcc: 我想添加删除好友的操作也是通过类似获取联系人的命令进行的,我这里因为环境所限,不方便对这些操作进行捉包分析; 你可以自己先捉包分析一下,不行的话把捉包数据发过来我帮你分析一下
ghs_79 35769 2008/10/14 14:13:58
谢谢hmilyygq的无私丰献,并且讲解很详细。
我们大家共同努力,把事情做好。
zgcc 35768 2008/10/14 14:01:46
怎么添加删除好友啊? 能不能给个示范代码?
hmilyygq 35767 2008/10/14 13:52:28
关于飞信的登录过程我的代码里比较清楚,另外可以参考这个链接里的分析:
    飞信协议分析, http://hi.baidu.com/nathan2007/blog/category/%B7%C9%D0%C5%D0%AD%D2%E9%B7%D6%CE%F6
关于飞信获取联系人列表的过程说明一下,根据我抓包分析的结果,飞信获取联系人列表和联系人详细信息的过程如下:
  1.用PGGetGroupList命令获取组列表。组的属性有名称和编号,组和联系人之间用组编号来对应,每个联系人都有组编号这样一个属性; (源码对应RetriveContractList过程)
  2.用GetPersonalInfo命令获取用户自己的信息。这个信息比较全面,包括用户的uri、手机号码、名称、昵称等; (源码对应RetrivePersonalInfo过程)
  3.用GetContactList命令获取联系人列表。这个列表里的联系人分为两种用户:飞信用户和非飞信用户。两种用户的uri构成是不一样的:飞信用户的uri里包含的是用户的飞信号,非飞信用户的uri里包含的是用户的手机号码。这个列表里的联系人信息是不全的,只有uri、本地名称和组编号。实际上发短信的时候只要知道对方的uri就可以了,至于联系人的详细信息,需要下面的几步来完成; (源码对应RetriveContractList过程)
  4.用SUB命令的presence子命令来预定联系人详细信息; 
  5.用GetContactsInfo命令获取联系人详细信息;联系人信息是用SUB命令的回应的方式分多次返回,这个信息里包含联系人的uri、昵称、手机号码等信息。 (源码对应RetriveContractInfo过程)

我这里因为调试环境的问题,可能分析不够正确

另外再说明一下,D7版的登录过程没有问题可以在盒子的ftp上下载,文件名是hmilyygq_Delphi_GreenFetion_D7_Src.rar,也可以在下面的链接下载
  http://www.namipan.com/d/hmilyygq_Delphi_GreenFetion_D7_Src.rar/7ef36335938c960adcee76e6699601265047538c9eb90700

Delphi2007版本的登录过程有问题,需要进行如下修改:
  1.反注释下面的代码:
  // 获取登录服务器和通信服务器地址
  Request := TStringList.Create;
  try
    try
      IdHTTP1.ReadTimeout := 3000;
      IdHTTP1.ConnectTimeout := 3000;
      Request.Text := '<config><user mobile-no="13710011001" /><client type="PC" version="3.3.0370" platform="W5.1" /><servers version="0" /><service-no version="37" /></config>';
      XMLReader.XML.Text := IdHTTP1.Post('http://nav.fetion.com.cn/nav/getsystemconfig.aspx', Request);
      XMLReader.Active := True;
      ExploreNode(XMLReader.Node);
    except
    end;
  finally
    Request.Free;
  end;

  2.把下面这句
      Request.Text := '<config><user mobile-no="13710011001" /><client type="PC" version="3.3.0370" platform="W5.1" /><servers version="0" /><service-no version="37" /></config>';
  改为:
      Request.Text := '<config><user mobile-no="'+PhoneNum+'" /><client type="PC" version="3.3.0370" platform="W5.1" /><servers version="0" /><service-no version="37" /></config>';
killwolf 35766 2008/10/14 13:30:43
试了下,果然是好东西。感谢分享!
ghs_79 35765 2008/10/14 12:16:50
1、有些好友没有名称,如何解决。
2、如何得到好友电话
halen 35762 2008/10/14 10:15:30
我这边D7版本的,无法登录。。IdTCPClient1.ReadLn; 提示read timeout ;
另外IEHTTP1.sl.Text 返回值里面和status 为401
ghs_79 35761 2008/10/14 9:55:33
获得不了好友列表是在过程ShowNodeInfo中出错了,

if aNode.HasAttribute('buddy-lists') then
  group := aNode.Attributes['buddy-lists']改为
if aNode.HasAttribute('buddy-lists') then
group := StrToIntDef(aNode.Attributes['buddy-lists'], 0);
因为在获得的信息中有此好友的值为空。
另外再问个问题,为什么有些好友没有名称?
ghs_79 35760 2008/10/14 8:57:35
D7下密码改成字母是可以的。
zgcc 35759 2008/10/14 8:33:33
使用delphi2007(Dec2007)调试通过!
测试发送给自己正常.
不过怎么添加好友啊?
vclclx 35757 2008/10/14 0:06:56
连接没有变,需要用ftp下载。
取消那段注释,并修改Request.Text后,可以登录了。
vclclx 35756 2008/10/13 23:57:22
只有hmilyygq_Delphi_GreenFetion_D7_Src.rar里面的能用,其它两个不能用,下载连接也没更新。
onecool 35754 2008/10/13 23:01:33
没有汉字,是数字,搞了一晚上才发现,是密码的问题。改了个密码就可以登陆了。
hmilyygq 35753 2008/10/13 22:58:08
是不是密码里有汉字?这样试试:
hash_password(UTF8Encode(FPassWord))
onecool 35752 2008/10/13 22:50:00
D7版本中怀疑hash_password(FPassWord),这个函数有问题。同样一个账号,用某些密码怎么都登陆不了。如果在调试中登陆不了,试试改一个密码。
onecool 35751 2008/10/13 22:09:21
IEHTTP1.ExecuteURL(FSSISignInURL+'?mobileno='
        + PhoneNum + '&domains=&digest=' + hash_password(FPassWord));
      FResult := IEHTTP1.sl.Text;
两个手机,一个可以。一个在上面那句返回的结果不对。
'<?xml version="1.0" encoding="utf-8" ?><results status-code="401" />'#$D#$A
hmilyygq 35750 2008/10/13 21:25:20
ghs_79: 你试一下飞信可以登录吗?如果可以登录,可以抓包对比一下二者的区别,我就是这样调试的

lanyong: 好友列表的部分可能处理的不够完善,至少好友分组我没有实现;实际上组列表我已经获取了,再把用户组加上没有技术难度
lanyong 35749 2008/10/13 21:19:20
我的D7+INDY10 成功发出了消息,不过我在D7+INDY9下面略作了点修改,不过好友列表取不出来,只有自己,没得好友!!
onecool 35747 2008/10/13 21:09:36
测试D7版本的那个成功登陆,成功发消息。
onecool 35746 2008/10/13 20:37:25
是登陆不了。账号错误或网络故障!
第一页 上一页 下一页 最后页 有 64 条纪录 共4页 21 - 40
 用户名:
 密 码:
自动登陆(30天有效)
 
  DELPHI盒子版权所有 技术支持:深圳市麟瑞科技有限公司 1999-2024 V4.01 粤ICP备10103342号-1 更新RSS列表