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

news/2024/5/20 22:48:13/文章来源:https://blog.csdn.net/weixin_30600197/article/details/95377629

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

 

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

 

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

 

开心网、校内网:

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

030409_1441_SNSMSN1.png

 

030409_1441_SNSMSN2.png

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

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

030409_1441_SNSMSN3.png 

 

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

 

030409_1441_SNSMSN4.png

 

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

 

030409_1441_SNSMSN5.png

 

    综合考虑,决定采用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文件如下:

030409_1441_SNSMSN6.png

 

第七步:

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

 

030409_1441_SNSMSN7.png

 

    其中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

转载于:https://www.cnblogs.com/lichl/archive/2009/03/04/1403423.html

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

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

相关文章

Flink 中文社区网站 “Flink Learning” 全新上线!文末附最新 Flink 大厂招聘信息~...

Apache Flink 是业界公认的性能优异的大数据计算引擎之一。近年来,随着越来越多学习和使用 Flink 的小伙伴加入,Flink 社区不断壮大。然而,尽管我们有完善的 Flink 教学体系以及各种实践分享,还有丰富的线上线下活动,仍…

团购网站安全性普遍堪忧

十一黄金周让团购市场再火了一把,“砸金蛋”、“领红包”等团购优惠活动更是如火如荼。然而据360安全中心今日发布的《中国团购网站安全检测报告》显示,目前国内团购网站安全性参差不齐,约70.6%的网站存在高危漏洞,主要为中小型团…

备案号链接工信部_网站主页底部网站备案号的悬挂和链接的工作通知

关注并标星飞虎商联微营销打卡阅读更快更深刻洞察微营销━━━━━━根据相关法律法规要求,阿里云对已备案成功数据进行全面核查。备案信息名称备案信息不合格内容整改要求网站内容网站下方未显示正确备案编号或编号未指向工信部网站下方未显示正确备案编号或编号未…

wordpress iis php,Windows IIS 上安装部署 WordPress 网站快速简要教程

Windows 上可以完美运行 PHP WordPress 站点,Windows 上也可以安装运行 MySQL,PHP、MySQL 本来就是跨平台的。微软也对 IIS 运行 PHP 程序有很好的支持,可以看这个链接:https://php.iis.net。任何支持 PHP 和MySQL 的服务器都可以…

always on sql 收缩日志_啥?我写的一条SQL让公司网站瘫痪了...

一条慢查询会造成什么后果?之前我一直觉得不就是返回数据会慢一些么,用户体验变差?其实远远不止,我经历过几次线上事故,有一次就是由一条 SQL 慢查询导致的。那次是一条 SQL 查询耗时达到 2-3 秒「没有命中索引&#x…

ASP.Net Mvc 发布网站 (样式+图片问题)

问题: 网站发布成功,但是样式与图片都不显示,错误提示为:无法找到资源。 解决办法: 右击发布网站——"编辑权限" 选择——“安全选项卡” 给以下两项赋访问权限 问题解决了。转载于:https://www.cnblogs.com…

使用tesseract-ocr破解网站验证码

首先我得承认,关注tesseract-ocr, 是冲着下面这篇文章的噱头去的,26行groovy代码破解网站验证码 http://www.kellyrob99.com/blog/2010/03/14/breaking-weak-captcha-in-slightly-more-than-26-lines-of-groovy-code/ 当然,看了之…

一个网站 一个域名跟服务器吗,域名服务器与根服务器区别吗

域名服务器与根服务器区别吗 内容精选换一换安装依赖时,使用pip3.7.5 install xxx命令安装相关软件时提示无法连接网络,且提示“Could not find a version that satisfies the requirement xxx",提示信息如下所示。没有配置pip源。配置p…

服务器iis限制ip访问网站吗,利用IIS实现网站后台IP登录限制

一、依次单击“开始”→“所有程序”→“管理工具”→“Internet信息服务(IIS)管理器”,打开“Internet信息服务(IIS)管理器”窗口。然后在左窗格中依次展开ServerName→网站,并右键单击Web站点的名称,执行“属性”快捷命令。打开站点属性对话…

地理人必备的宝藏网站

1.地理导航——一个地理人绝不能错过的宝藏网站 地理导航戳这里 2.吾爱地理,一个整合了海量地理信息的综合地理网站,资料信息多到令人发指,还包括各种数据下载和考研真题 吾爱地理戳这里 有了这两个网站,地理人天下之大大可去得…

利用HTML制作简易新闻网站的静态网页

<!DOCTYPE html> <html><head><meta charset"utf-8"><title>登录</title></head><body></body> </html> <h1>这是一个新闻网站</h1> <h1>登录页面</h1> <form>账号&…

大型网站系统架构实践(六)深入探讨web应用集群Session保持

原理 在第三&#xff0c;四篇文章中讲到了会话保持的问题&#xff0c;而且还遗留了一个问题&#xff0c;就是会话保持存在单点故障&#xff0c; 当时的方案是cookie插入后缀&#xff0c;即haproxy指负责分发请求&#xff0c;应用服务自行保持用户会话&#xff0c;如果应 用服务…

从零开始利用vue-cli搭建简单音乐网站(八)

这是完成了预想中的最后两个功能&#xff1a;歌曲评论以及歌曲搜索。 1、评论效果&#xff1a; 用户点击评论按钮&#xff0c;评论框获取焦点。 输入之后点击提交&#xff0c;下方显示评论&#xff0c;用户名称以及日期。相应的用户也可以删除自己评论。 当然只能删除自己的评论…

水文数据产品的网站

主要记录在平常用到的水文数据产品的网站&#xff08;包括水库、湖泊、河流等&#xff09;&#xff1a; 1.hydroweb 官网&#xff1a;https://www.theia-land.fr/en/hydroweb/ 界面&#xff1a; 2.全球水库数据集 Global Reservoir and Dam Database (GRanD) 3.测高卫星数据集…

handbook/CentOS/使用免费SSL证书让网站支持HTTPS访问.md

转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/9006032.html

学习Python的网站

转载&#xff1a;https://zhuanlan.zhihu.com/p/496534430 1.Python Tutor 网站&#xff1a;https://pythontutor.com/ 能够很好理解代码及运算的过程。 2.算法网站 https://visualgo.net/en 以动画形式展示多种算法的实现过程。 还挺有意思的&#xff0c;可以加深对算法的理…

安利几个免费学术文献下载网站

一、 百度学术 网站链接&#xff1a;http://xueshu.baidu.com/ 国内很大的一个学术搜索引擎&#xff0c;其中涵盖了国内外各类数据库&#xff0c;大多数硕博士/会议/期刊论文都可以免费下载~ 二、Sci Hub 网站链接&#xff1a;http://www.sci-hub.ren/ 由一位俄罗斯的女学霸…

汇总|那些你所不知道的论文查重网站

点击上方“3DCVer”&#xff0c;选择“星标”干货第一时间送达本文整理自知乎作者然烬燃尽Ash高赞回答&#xff0c;原文链接&#xff1a;https://www.zhihu.com/question/314716524/answer/678765721昨天相信很多同学的朋友圈都被这张海报刷屏了&#xff0c;还好有眼尖的网友发…

基于阿里云服务器+wordpress构建自己的网站(全过程系列,无需任何编程知识)

1&#xff1a;阿里云服务器配置 既然是基于阿里云服务器&#xff0c;那么当然是先得申请一个阿里云服务器。本博客使用的服务器是云服务器ECS-共享计算型 n4系列&#xff0c;阿里云对新用户有很多优惠活动&#xff0c;这个是我当时花了69块钱买了一年&#xff0c;又通过某个渠道…

不得不赞!一个国内(可能)最好的海量CV数据集获取网站

点击上方“计算机视觉工坊”&#xff0c;选择“星标”干货第一时间送达本文来源&#xff1a;我爱计算机视觉在CV等计算机领域中&#xff0c;好的数据&#xff0c;对模型训练至关重要。自己做数据&#xff0c;即昂贵又费时费力&#xff1b;但是&#xff0c;使用现成的数据集&…