`

Msn 获取用户列表

阅读更多

最近公司要获取Msn 用户列表在网上找了些资料,这篇文章不错,先收藏了!

                    http://www.accptech.com/article/net/722.html

 

几乎所有的SNS网站都有[邀请站外好友]加入本站这个功能,当然,我们正在开发的这个名为XXX的网站也不例外,今天学习了一下,把成果向大家做一简单汇报。

    这个功能的关键点在于取得用户的已有联系人列表,并发送邀请函(一般都是电子邮件的形式),在这篇文章里,只涉及怎么样取得MSN中联系人信息,如果大家有兴趣,我会把怎么样取得Gmail、Yahoo等的联系人信息代码也都帖上来。

    首先我想到的是参照已有网站的实现方式,如果开心网、校内网、FaceBook等。

开心网、校内网:

开心网和校内网的实现方式大致相同,都是输入用户名和密码,程序按照一定的数据格式POST到LIVE网站,获取Ticket,然后取得联系人的信息,以下是屏幕截图。

   以上两个网站的共同点是都要求用户输入MSN的用户名和密码,这样有可能造成MSN帐户信息泄漏,虽然都说"不会记录或存储你的密码",但谁敢保证呢,即使真的不会存储,但用户会有一种抵触心理。

    FaceBook的实现与以上两个网站截然不同,它不要求用户输入密码信息,这样用户就会觉得爽多了,请看下图,密码框并不要求用户填写(Enable=false)

以上两个网站的共同点是都要求用户输入MSN的用户名和密码,这样有可能造成MSN帐户信息泄漏,虽然都说"不会记录或存储你的密码",但谁敢保证呢,即使真的不会存储,但用户会有一种抵触心理。

    FaceBook的实现与以上两个网站截然不同,它不要求用户输入密码信息,这样用户就会觉得爽多了,请看下图,密码框并不要求用户填写(Enable=false)
 

   用户点击[Find Friends]后,会转向Live网站,这样用户就可以放心大胆的输入密码了。

 

点击[Sign In]后,会自动跳转到FaceBook网站,显示用户联系人信息 ,如下图所示。

 

    综合考虑,决定采用facebook的实现方式,MSDN上查找了一下,原来Microsoft发布了Window Live的一系列API,其中有一块是Contacts API,好了,那就开始写代码吧(paipaidi)?

 

第一步:

    申请一个微软云计算的一个Project,访问https://lx.azure.microsoft.com/Cloud/Provisioning/Default.aspx,申请一个类型为Live Services的Project

Application ID:
 0000000048011C34
 
Domain(s):
 www.dpe.com
 
Return URL:
 http://www.dpe.com/
 
Secret Key:
 nazgnMZRWbbgaleiDpvUhG69FKBb5L2v
 

 

第二步:

    下载 Windows Live ID Delegated Authentication SDK 1.2 DEMO,网址为:http://www.microsoft.com/downloads/details.aspx?FamilyId=A2466ABF-9629-42D8-B991-1D3FAF2FE872&displaylang=en

其中有C#、Java、Perl、PHP、Python、Ruby、VB等多种版本任你选择。

第三步:

   安装下载的文件到指定目录内,默认为C:\Program Files\Windows Live ID\DelAuth

第四步:

    在IIS中新建一个虚拟目录,名称为DelAuth

第五步:

    修改hosts文件, 你可以修改一下C:\WINDOWS\system32\drivers\etc中的hosts文件,把127.0.0.1映射到一个您刚才申请Project时填写的域名 www.dpe.com

第六步:

    修改Sample1中的Web.Config文件,如下,用申请来的ApplicationID和Secret Key替换文件中相应的值,并根据你的主机及虚拟目录名称,把ReturnUrl改为http://www.dpe.com/delAuth/sample1/delauth-handler.aspx ,Policyurl的值改为http://www.dpe.com/delAuth/sample1/policy.html ,原始的web.Config文件如下:

 

 

第七步:

    把Sample1中的Default.aspx设置为首页,按如下界面中的URL打开网址

 

 

 

    其中Click Here中的URL是动态构造的,如果有兴趣,相应的构造代码大家可以研究一下。

点击Click Here就转向Live网站进行登录,登录后自动返回到Web.Config中配置的returnUrl网址,用户登录后,我们可以通过代码取得

WindowsLiveLogin.ConsentToken的值,具体代码如下:

WindowsLiveLogin wll = new WindowsLiveLogin(true);

WindowsLiveLogin.ConsentToken token = wll.ProcessConsent(req.Form);

 

第八步:

取得MSN中的联系人信息

微软提供了允许我们通过REST方式访问contracts服务,需要具备以下两个参数:

The Delegated Authentication token (DAT),即WindowsLiveLogin.ConsentToken

The Location ID (lid),可以通过WindowsLiveLogin.ConsentToken获得

显然,我们前七步做的工作主要是获得以上的两个参数的值,用户登录后,在returnUrl页面中,我们可以写如下代码

 

public string GetContacts(WindowsLiveLogin.ConsentToken ct)

{

 

string lid = ct.LocationID;

 

string delegatedToken = ct.DelegationToken;

// Construct the request URI.

string uri = "https://livecontacts.services.live.com/@L@" + lid + "/rest/LiveContacts/Contacts/";

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);

request.UserAgent = "Windows Live Data Interactive SDK";

request.ContentType = "application/xml; charset=utf-8";

request.Method = "GET";

 

// Add the delegation token to a request header.

request.Headers.Add("Authorization", "DelegatedToken dt=\"" + delegatedToken + "\"");

 

//Issue the HTTP GET request to Windows Live Contacts.

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

 

//The response body is an XML stream. Read the stream into an XmlDocument.

XmlDocument contacts = new XmlDocument();

contacts.LoadXml(new StreamReader(response.GetResponseStream()).ReadToEnd());

 

//Use the document. For example, display contacts.InnerXml.

return contacts.InnerXml;

 

//Close the response.

//response.Close();

}


我们可以针对返回的XML字符串进行分析,获取你需要的Contact格式,并加以利用。

 

 

 

1.上面的这篇文章不错。但是就是获取不到密匙,找了半天地址:

http://msdn.microsoft.com/zh-cn/library/cc287659.aspx(获取密匙)

 

2.通过上面的文章修改url地址获取用户信息。

 

 

分享到:
评论

相关推荐

    php获取MSN好友列表,邀请MSN好友

    请到此下载新版的代码: ... 做了一个MSN邀请好友的功能,拿出来分享...获取列表类在压缩包中。DEMO: require('class.msn.php'); $msn = new MsnFriend(); $list = $msn->GetList('MSN用户名','密码'); print_r($list);

    获取msn联系人(php)

    最近的web2.0 项目需要用户导入自己的msn联系人,知道msn有自己的协议,所以原理上来说用程序写客户端 是没问题的,顺便在网上搜了搜,发现程序还真不少,有强人用php 实现了很多基本功能,并且又有人用python 写了...

    获取邮箱好友列表demo

    校内 开心一样 获取好友列表的demo asp.net C#写的 直接下载可以运行,如果觉得10分多了可以不下 费了我很多时间 希望对大家有用

    php读取msn上的用户信息类

    一个可以获取msn上用户信息的代码

    PHP 模拟登陆MSN并获得用户信息

    一个可以获取msn上用户信息的代码

    360safeup_5.0.0.1030.exe

    3.监控用户行为,获取用户重要资料 如何预防木马? 1.养成良好的上网习惯,不访问不良小网站。 2.下载软件尽量到大的下载站点或者软件官方网站下载。 3.安装杀毒软件,防火墙,定期进行病毒和木马扫描。

    同一个帐号不能同时登陆的问题

    〓简介〓有点常识的人都知道本身用asp做这种功能显然有些牵强,因为他不像qq,msn或irc 聊天室那样是即时通讯,他都是靠刷新网页更改最后活动时间来获取用户是否在线的,所以您不要指望下面这片教程有多完美,我也...

    THINKPHP最全第三方登录(包括腾讯QQ、微信、新浪微博、Github、淘宝网、百度、搜狐微博、人人、360、网易等等)

    THINKPHP最全第三方登录(包括腾讯QQ、微信、新浪微博、Github、淘宝网、百度、搜狐微博、人人、360、网易等等) 使用方式: 1、使用命名空间 ... E('获取腾讯QQ用户信息失败 : '.$data['msg']); } }

    1345个易语言模块

    69msn.ec ACCESS 到高级表格.ec Access操作.ec Access数据库压缩修复新建.ec ACCSEE记录显示到超级列表框模块.ec ACSII 加解密模块2.0.ec AD.ec ADO方式填充树型框.ec API操作模块.ec API的使用方法.ec API 设置颜色...

    java随机生成用户名(qq、手机、邮箱、虚拟姓名等格式用户名)

    qianih19760611@msn.com 15208376363 xieww1979 shixd0904@126.com 18035677437 80892 18967033182 18923271615 15506730128 19741 fangi0713 15829813954 58285 yuanr19730429 shenpk 79607 15430 15226507276 ...

    图纸加密软件

    解决随意将文件设成共享,导致非法人员获取资料. 解决便携式电脑进入局域网络窃取信息. 解决 计算机软、硬件数量无法确实掌握,盘点困难 解决单位的计算机数量越来越多,无法集中管理 解决软盘驱动器、光盘驱动...

    交互设计实习报告.doc

    获取平台,用户可以通过WEB、WAP以及各种客户端组件个人社区,以140字左右的文字更 新信息,并实现即时分享。最早也是最著名的微博是美国的twitter,根据相关公开数据 ,截至2010年1月份,该产品在全球已经拥有7500...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    而越来越多专业知识的 Blog 的出现,让我们看到了 Blog 更多所蕴涵的巨大的信息价值:不同的 Blog 选择不同的内容,收集和整理成为很多人关注的专业 Blog ——目前越来越多的人获取信息的来源是一些固定的 Blog 。...

    屏幕键盘记录精灵旗舰版(密码记录器) 2017.rar

    2、能定时截取屏幕图片、获取USB插拔记录、获取网址记录并保存到指定的文件夹中。 3、能定时将记录下来的图片及文本发送到您指定的邮箱中。 4、能将所有的记录发送到指定FTP服务器! 5、用户插入U盘后,能自动读取...

    易语言模块914个

    69msn.ec ACCESS到高级表格.ec Access操作.ec ACCSEE记录显示到超级列表框模块.ec ACSII加解密模块2.0.ec AD.ec ADO方式填充树型框.ec API操作模块.ec Base64编解码.ec BASE64编解码模块.ec Bios信息.ec ...

    速递网上订餐系统 v6.1.1.zip

    (1)当前订单列表:自动刷新获取新订单,获取到新订单时候有声音提示,自动打印,有多样化的搜索功能,可以屏蔽某个ip提交订单。 (2)可售产品:展示当前菜品出售情况,包括总份数,已经出售多少份,剩余多少份。...

    计算机网络安全的重要性.doc

    密码偷窃程 序是现在互联网上对个人用户危害最大的木马程序,黑客出于经济利益目的,安装此类程 序以获取用户的机密信息,如网上银行账户,网络游戏密码,QQ,MSN密码等,这是在互联网 上给用户的真实财富带来最大威胁的...

Global site tag (gtag.js) - Google Analytics