使用Windows Live/OneDrive REST API获取联系人的电话号码和电子邮件

use*_*276 9 windows-live contacts outlook.com live-sdk onedrive

有没有人成功使用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"
}
Run Code Online (Sandbox Code Playgroud)

小智 6

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

"wl.contacts_emails"

例如

WL.login({scopes: ["wl.contacts_emails"]});
Run Code Online (Sandbox Code Playgroud)


Mat*_* B. 2

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

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

以下是原文:

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

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