すべての電子メールアドレスを取得するためのWindow Live Contacts API用の次のコード。ログイン、ログアウト、およびその他の認証でうまく動作します。 Get Data
関数呼び出しでログインしたユーザーのすべてのユーザー情報を収集できますが、ユーザーの電子メールハッシュを取得しています。残りの電子メールハッシュは空白です。私は私のコンタクトブックに10の電子メールアドレスを持っています。電子メールハッシュ取得時のWindows Live Contacts 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はハッシュを表示します。 –