以下用於獲取所有電子郵件地址的Window Live聯繫人API代碼。它在登錄,註銷和其他身份驗證方面的工作很好。我可以通過Get Data
函數調用收集登錄用戶的所有用戶信息,但是正在收到用戶的電子郵件散列,其餘電子郵件散列是空白的。我的通訊錄中有10個電子郵件地址。Windows Live聯繫人獲取電子郵件哈希的API錯誤 - JavaScript
如何使用此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>
那麼twitter是如何獲取電子郵件ID? – coderex
-1這是不正確的。 @Thierry指出,如果你沒有請求正確的權限,API將只顯示你的哈希值。 –