gpt4 book ai didi

c# - 在 ASP.NET 中使用 Live Connect API 检索用户的电子邮件地址

转载 作者:太空狗 更新时间:2023-10-29 21:40:52 25 4
gpt4 key购买 nike

所以我对 ASP.NET MVC 和 Windows Live Connect API 还很陌生。基本上我正在尝试将实时登录集成到我的网站中。当用户登录时,Live 请求他们允许我的应用程序提供某些信息,将用户发送到我的应用程序设置中指定的重定向 uri,并附加一个查询字符串。在这里,如果用户是第一次登录网站,我希望他们的基本信息存储在我的服务器上(名字、姓氏、电子邮件)。我已经能够获得他们的名字和姓氏,但很难找到如何检索他们的主要电子邮件地址。我将解释到目前为止我所做的事情。

我找不到将 Live connect 集成到 MVC 应用程序中的最佳方法,所以我做了我最好的猜测。我在我的重定向 uri 中指定了一个 Controller 操作,它采用查询字符串“代码”来构建 HTTP Post。

HttpRequest req = System.Web.HttpContext.Current.Request;

string myAuthCode = req.QueryString["code"];
string myAppId = ConfigurationManager.AppSettings.Get("wll_appid");
string mySecret = ConfigurationManager.AppSettings.Get("wll_secret");
string postData = "client_id=" + myAppId + "&redirect_uri=http%3A%2F%2Fmscontestplatformtest.com%2FContestPlatform%2FUser%2FSignIn&client_secret=" + mySecret + "&code=" + myAuthCode + "&grant_type=authorization_code";

byte[] byteArray = Encoding.UTF8.GetBytes(postData);

WebRequest request = WebRequest.Create("https://oauth.live.com/token");
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byteArray.Length;
request.Method = "POST";

获取 JSON 格式的字符串响应并提取 access_token。然后我使用此访问 token 构造一个 HTTP GET 调用,如下所示。

request = WebRequest.Create("https://apis.live.net/v5.0/me?access_token=" + r.access_token);
response = request.GetResponse();
reader = new StreamReader(response.GetResponseStream());

string userInfo = reader.ReadToEnd();

上面的 GET 调用为我提供了这个 JSON 字符串:

{ 
"id": "02b4b930697bbea1",
"name": "Daniel Hines",
"first_name": "Daniel",
"last_name": "Hines",
"link": "http://profile.live.com/cid-02b4b930697bbea1/",
"gender": "male",
"locale": "en_US",
"updated_time": "2011-10-14T21:40:38+0000"
}

这都是公开信息,非常棒,除了他们的主要电子邮件地址外,我几乎拥有我需要的一切。我需要什么样的 GET 调用来检索电子邮件?

此外,我这样做是否正确?

最佳答案

好的,我明白了!

我只需要将范围“wl.emails”添加到我的登录链接。然后我的 GET 调用将返回他们的电子邮件地址。

关于c# - 在 ASP.NET 中使用 Live Connect API 检索用户的电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9766771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com