9

是否有人成功使用 Live SDK(也称为 OneDrive SDK)来检索用户联系人的电子邮件地址和/或电话号码?

我能做的最好的事情是获取用户联系人的个人资料,但它只包括经过哈希处理的电子邮件地址,没有电话号码,例如:

{
  "id": "contact.1e680c06000000000000000000000006",
  "first_name": "James",
  "last_name": "Cameron",
  "name": "James Cameron", 
  "gender": null,
  "is_friend": false, 
  "is_favorite": false,
  "user_id": null, 
  "email_hashes": [ "3972d8781911deba416ecf8e44dcc5f4dae92ab9aac58520bcfa480c31ea38f5", "301e45d554a7978c2a8ef1e662876411dfbca4b89535d2362dff3f6d786366b7" ],
  "updated_time": "2011-07-21T20:31:11+0000"
}
4

3 回答 3

6

您需要做的就是将以下范围添加到您请求的范围列表中:

“wl.contacts_emails”

例如

WL.login({scopes: ["wl.contacts_emails"]});
于 2013-02-11T12:41:15.520 回答
4

使用隐藏范围,不受官方支持,但我可以确认它们目前在 5.6 版上工作,尽管 MSDN 论坛告诉你它们不支持。

对于电子邮件使用wl.contacts_emails,对于电话号码使用wl.contacts_phone_numbers

于 2014-09-04T06:48:12.883 回答
2

根据本文档:http: //msdn.microsoft.com/en-us/windowslive/hh278351

您只能拥有数据库中已有联系人的电子邮件。这意味着 Microsoft 希望您计算网站数据库中所有电子邮件地址的哈希值。一旦您进行联系人导入,您将您的哈希值与他们在响应中提供给您的哈希值进行比较,并从您的数据库中检索具有匹配哈希值的电子邮件:

以下是原文:

为了让您的网站参与此方案,您必须创建属于您网站的每个注册用户的每个电子邮件地址的哈希值。这些哈希中的每一个都必须遵循 Live Connect API 识别的特定格式。为每个注册用户的电子邮件地址创建哈希后,您可以将哈希列表与 Live Connect 为访问用户的联系人生成的电子邮件地址哈希列表进行比较。每个匹配的哈希代表您网站的注册用户,他也是访问用户的联系人之一。

据我所知,绕过它的唯一方法是进行网站抓取或弄清楚如何触发自动联系人导出并仅处理导出的文件。

于 2011-09-23T13:41:02.677 回答