SNS网站中怎样获取MSN联系人信息

news/2024/5/20 15:47:37/文章来源:https://blog.csdn.net/weixin_34259232/article/details/94004865
几乎所有的SNS网站都有[邀请站外好友]加入本站这个功能,当然,我们正在开发的这个名为XXX的网站也不例外,今天学习了一下,把成果向大家做一简单汇报。

 

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

 

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

 

开心网、校内网:

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

 

    以上两个网站的共同点是都要求用户输入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格式,并加以利用。

附件中的代码包完整实现了这一功能,大家可以下载

http://files.cnblogs.com/lichl/DelAuth.rar

Tag标签: MSN,Contacts,Live Api,SNS

转载于:https://www.cnblogs.com/JemBai/archive/2009/03/06/1404650.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_806079.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站、数据库的衍变之路(一)

最简单的一个网站,可能说是demo更加合适一些,部署上一台计算机上也可以正常运转。通常情况,这种部署方式是效率最高的。但是为什么说需要把web服务器与数据库分开放置呢?这就牵扯到通信效率的问题。 你写一个程序,无论…

CISCO的网站访问不了了

好像是DNS服务器出了问题,访问其他公司的都可以。转载于:https://blog.51cto.com/zly58/192947

【分享】让网站在IE8的兼容模式下运行

IE浏览器的兼容性一直是网站开发人员头疼的事情,众所周知,微软的Internet Explorer团队一直在致力于将IE8打造为最符合业内标准的浏览器,所不幸的是,当前并非所有的网站都符合这些标准。那如何让网站在IE8的兼容模式下运行呢。下面…

java支付宝h5转native_iOS 手机网站支付转Native支付(H5支付页面调起支付宝客户端(app))...

一:导入sdk流程如下: 1.下载sdk,把iOS包中的压缩文件中以下文件拷贝到项目文件夹下,并导入到项目工程中。AlipaySDK.bundleAlipaySDK.framework2.在Build Phases选项卡的Link Binary With Libraries中,增加以下依赖&am…

关于网站安全产生原因触发点漏洞表现解决方式的整理

2019独角兽企业重金招聘Python工程师标准>>> 参考了别人的一篇文章整理如下 没有办法,太大显示的不全.整是奇怪吖,有需要的原文件的自己找我要吧.我不会上传文件.没找到地方传: 类别 产生原因 触发点 漏洞表现 解决方式 输入和数据验证 如何知道应用程序接收…

android电商筛选框,像很多网站(比如电商)里的筛选功能一般是如何实现的?

我的思路如下:数据表:分类(编号,名称)筛选项(编号,名称,分类编号,显示顺序) 如"品牌"就是一个筛选项.筛选点(编号,名称,所属筛选项编号,显示顺序) 如"小米"就是一个筛选点.商品表(sku编号,分类编号)商品属性表(sku编号docid,筛选点编号集合content) 【全文…

html css仿app,总有一款适合你-移动端微网站-仿app时间滚动选择效果实现_html/css_WEB-ITnose...

上次给大家介绍了一款 移动端微网站的时间选择插件 ,你还记得么?今天给大家介绍一款新的插件:mobiscroll,为什么上次的可以用,这次还要介绍新的呢?主要因为它十分灵活,可控,总有一种组合适合你。…

NO.120 不懂语言代码,超级菜鸟的建站分享(三):第三方登录设置。

为什么80%的码农都做不了架构师?>>> 上两篇详细的介绍了我使用蝉知免费CMS搭建个人站:先知厨房站的建站流程和界面设置。 不懂语言代码,超级菜鸟的建站分享(二):界面设置 不懂语言代码&#xf…

网站php上传服务器,php文件怎么上传到服务器

PHP中的文件上传通常,文件上传使用的是HTTP的POST方式,首先需要定义HTML表单的enctype属性为"multipart/form-data"。上传页面://HTML文件:支持文件上传的HTML表单上传此文件:在PHP程序中,使用全…

大型网站系统架构的演进(一)(转)

前言 写这篇文章的目的是想用来帮助自己思考和理清头绪,以及如何从一个简单的网站架构演进发展成一个大型网站架构,主要侧重在技术方面 简单的网站 由于我没有做过php,那么就以jsp为例,jsp做网站前端,以电子商务网站为…

php做网站步骤_做网站开发必要的步骤

网站制作一年350元,五站合一,快速建站 ,www.sxjcwzjs.com,只需进入网站右上角注册快速建站即可(需要电脑登录注册),需要联系我吧!电话:13752214574,微信号:m1078582894域名注册网站需…

提高网站权重的方法(留作参考)

2019独角兽企业重金招聘Python工程师标准>>> 一、百度贴吧发贴回贴带上你的链接,但不要以打广告形式,会被k的 我们都知道贴吧是百度旗下的独立品牌,全球最大中文社区。贴吧是一种基于关键词的主题交流 社区,它与搜索紧密结合,准确…

大型网站架构技术一览

大型网站的挑战主要来自庞大的用户,高并发的访问和海量数据,任何简单的业务一旦需要处理数以P计的数据和面对数以亿计的用户,问题就会变得棘手。大型网站架构主要就是解决这类问题。 本文内容大部分来自《大型网站技术架构》,这本书很值得一看…

手机下载小说为php格式的,PHP响应式小说网站整站源码(自适应手机移动端+深度SEO优化自动采集+图文安装教程)...

【温馨提示】源码包解压密码:www.youhutong.com资源描述PHP响应式小说网站整站源码(自适应手机移动端深度SEO优化自动采集图文安装教程)源码介绍:深度SEO优化自动采集的新版本,小说不占内存,存个上万小说不成问题。记住采集以后的…

FCD网站服务器加密,AWS S3 应用 KMS Key 进行服务端数据加密

当我们把数据搬上云端,为了保护敏感数据一定要对数据存储进行加密。而对于 S3 上的数据加密最简单莫过于启用服务端数据加密,可以是 AES-256 或 AWS-KMS。进行了服务端加密码的文件有什么不同呢?首先从 AWS S3 文件列表视图中看到的文件大小与…

利用wordpress添加新页面_wordpress可以做跨境独立站或自建站吗

wordpress可以做跨境独立站或自建站吗做外贸独立站或者自建站的平台海内外还是有很多的,具体市场不同,建站也不同,下面收集的一些wordpress自建站详细信息:1、shopify(最常见)Shopify是世界上最大和最受欢迎的电子商务平台之一。它…

html5网站入门,萌新的HTML5 入门指南

本文由葡萄城技术团队原创并首发作者:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。HTML5的发展改变了互联网技术趋势,前端热度依旧不减,所以对于应用开发人员前端技术也成了必备技能之一…

《淘宝店铺 大数据营销+SEO+爆款打造 一册通》一一2.4 商品分析助力商家打造爆款...

本节书摘来自异步社区出版社《淘宝店铺 大数据营销SEO爆款打造 一册通》一书中的第2章,第2.4节,作者:葛存山 , 耿寿礼,更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.4 商品分析助力商家打造爆款 商品分析提供了店铺商…

整理网站页面CV的《长恨歌》文本,python字符串基础知识实战。

【点击此处跳转笔记正文】Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单…… My CSDN主页、My HOT博、My Python 学习个人备忘录好文力荐、 老齐教室 自学并不是什么神秘的…