1

ユーザーの連絡先をインポートできました:

        $url = 'https://apis.live.net/v5.0/me/contacts?access_token='.$accesstoken.'';
        $xmlresponse =  curl_file_get_contents($url);
        $xml = json_decode($xmlresponse, true);
        foreach($xml['data'] as $emails)
        {
                echo '<br><br>';
                echo $emails['name'].' '.$emails['email_hashes'][0];

        }

問題は、ユーザーがネットワーク内で持っている可能性のある接続を見つけたいということです。hotmail は平文の電子メールを提供しません (一方向暗号化のように見えます)。

メールを同じ方法で暗号化して比較するにはどうすればよいですか? これを回避する他の作業はありますか?

4

2 に答える 2

3

私の解決策は、スコープを拡張することでした。その後、結果に含まれるフィールドが増えました

https://login.live.com/oauth20_authorize.srf?client_id={APPID}&`scope=wl.signin%20wl.basic%20wl.emails%20wl.contacts_emails&response_type=code&redirect_uri=http://{REDIRECT_URI}`
于 2013-01-09T18:01:29.700 に答える
1

ハッシュを生成するためのドキュメントによると、最初trim()に appid と電子メールを -ing し、それらを UTF-8 として連結し、連結された文字列の sha256 ハッシュを生成することで、ハッシュを生成できます。

appid と email の両方が有効な utf-8 であると仮定すると、(疑似コード) のようなもの:

function get_hotmail_hash($email, $appId)
{
    $content = mb_strtolower(trim($email) . trim($appId), "utf-8");
    return hash("sha256", $content);
}
于 2013-01-09T12:11:10.943 に答える