Window Live Contacts API 的以下代码可从中获取所有电子邮件地址。它在登录、注销和其他身份验证方面工作正常。我可以使用 Get Data
函数调用收集登录用户的所有用户信息,但我正在获取用户的电子邮件哈希,其余电子邮件哈希为空。我的通讯录中有 10 个电子邮件地址。
我如何使用此 API 获取我的联系人的电子邮件地址?
<html>
<head>
<script src="https://js.live.net/v5.0/wl.js" type="text/javascript"></script>
</head>
<body>
<a href='javascript:void(0);' onclick='signUserIn();'>signUserIn</a> <br>
<a href='javascript:void(0);' onclick='signUserOut()'>signUserOut</a><br>
<a href='javascript:void(0);' onclick='loginStatus()'>Check User Status</a>
<a href='javascript:void(0);' onclick='getData()'>Get Data</a>
<script type="text/javascript" >
WL.init({
client_id: '0000000044444444',
redirect_uri: 'http://domain.com/contact.php',
response_type: "token",
logging: true
});
var scopesArr = ['wl.signin', 'wl.basic', 'wl.emails'];
function signUserIn() {
WL.login({ scope: scopesArr });
}
function loginStatus() {
WL.getLoginStatus(function(response) {
alert("response " + response );
});
}
function getData() {
alert( "getData");
WL.api(
{
path: "me/contacts",
method: "GET",
scope: scopesArr
},
function (result) {
if (!result.error) {
var resultData = result.data;
var emailHashes = new Array;
for (i = 0; i < resultData.length; i++) {
for (j = 0; j < resultData[i].email_hashes.length; j++) {
alert( "resultData " + resultData[i].email_hashes[j]);
emailHashes[emailHashes.length] = resultData[i].email_hashes[j];
}
}
var resultText = "";
for (k = 0; k < emailHashes.length; k++) {
resultText += emailHashes[k] + "\r\n";
}
// document.getElementById("emailHashes").setAttribute("rows", emailHashes.length);
document.getElementById("lists").value = resultText;
}
else {
alert("Error getting contacts: " + result.error.message);
}
});
}
function signUserOut() {
WL.logout();
}
</script>
<textarea rows="10" cols="100" id="lists"></textarea>
</body>
</html>
最佳答案
我遇到了同样的问题,我找到了解决方案,您需要做的就是将以下范围添加到您请求的范围列表中:“wl.contacts_emails”
WL.login({scopes: ["wl.contacts_emails"]});
之后,我不得不从我的配置文件中删除我的应用程序以重置所有范围并再次添加我的应用程序。 (但如果您不想询问所有已经使用过您的应用的人,我可以重置 secret token 以强制用户再次添加您的应用)。
关于获取电子邮件哈希时出现 Windows Live Contacts API 错误 - JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6538982/