Get contact's phone numbers and emails using the Windows Live/OneDrive REST API

随声附和 提交于 2019-12-08 16:14:25

问题


Has anyone successfully used the Live SDK (also called OneDrive SDK) to retrieve the email addresses and/or phone numbers of an user's contacts ?

The best I have been able to do is the get profiles for a users contacts but it only includes hashed email addresses and no phone numbers, like this for example :

{
  "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"
}

回答1:


All you need to do is add the following scope to your list of scopes you're requesting:

"wl.contacts_emails"

e.g.

WL.login({scopes: ["wl.contacts_emails"]});



回答2:


Use hidden scopes, not officially supported but I can confirm they currently work at version 5.6 despite the MSDN forums telling you they don't.

For emails use wl.contacts_emails, for phone numbers use wl.contacts_phone_numbers.




回答3:


As per this document: http://msdn.microsoft.com/en-us/windowslive/hh278351

You can have only emails of contacts that are already in your database. This means that Microsoft wants you to calculate hashes for all of your email addresses in your websites database. Than once you do the contact import you compare your hashes with the hashes they gave you in the response and retrieve FROM YOUR DATABASE the emails that had matching hashes:

Here is original text:

For your website to participate in this scenario, you must create a hash of each email address that belongs to each registered user of your website. Each of these hashes must follow a specific format that the Live Connect APIs recognize. After you have created a hash for each of your registered users' email addresses, you can compare your list of hashes with the list of email-address hashes that Live Connect generates for the visiting user's contacts. Each matching hash represents a registered user of your website who is also one of the visiting user's contacts.

The only way to bypass that as far as I can tall is to do website scraping or to figure out how to trigger automatic contact export and just process the exported file.



来源:https://stackoverflow.com/questions/6785828/get-contacts-phone-numbers-and-emails-using-the-windows-live-onedrive-rest-api

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!