有没有人成功使用Live SDK(也称为OneDrive SDK)来检索用户联系人的电子邮件地址和/或电话号码?
我能做的最好的是获取用户联系人的个人资料,但它只包括散列的电子邮件地址和没有电话号码,例如:
{
"id": "contact.1e680c06000000000000000000000006",
"first_name": "James",
"last_name": "Cameron",
"name": "James Cameron",
"gender": null,
"is_friend": false,
"is_favorite": false,
"user_id": null,
"email_hashes": [ "3972d8781911deba416ecf8e44dcc5f4dae92ab9aac58520bcfa480c31ea38f5", "301e45d554a7978c2a8ef1e662876411dfbca4b89535d2362dff3f6d786366b7" ],
"updated_time": "2011-07-21T20:31:11+0000"
}
Run Code Online (Sandbox Code Playgroud) 我可以通过windows live api正确获取用户信息,联系人,朋友.
但是当我根据以下注释请求用户个人资料照片时:
注意要将GET调用重定向到用户图片的URL,您可以调用/ me/picture或/ USER_ID/picture.
https://apis.live.net/v5.0/me/picture?access_token=MY_ACCESS_TOKEN
它响应为null,实际上我已经为window live设置了一张个人资料图片.
很奇怪我可以获得除用户图片之外的所有信息,但是当我使用windows Interactive SDK作为用户图片时,它会回复我正确的图片网址.
问题是什么?
我正在尝试实现“使用Outlook.com登录”流程,该流程涉及客户端和服务器代码。流程是:
我将代码返回到html页面,并将其发布到我的java服务器。
在服务器端,我使用代码来获取访问和刷新令牌,并通过POST请求访问:https : //login.live.com/oauth20_token.srf
正文中的下一个参数:client_id,redirect_uri,client_secret,grant_type =“ authorization_code”和code = <上一步中的代码>。
我收到了access_token和refresh_tokem,它们应该有效1小时。
https://apis.live.net/v5.0/me?access_token= <我刚刚获得的访问令牌>
并得到错误401:
{
"error": {
"code": "request_token_invalid",
"message": "The access token isn't valid."
}
}
Run Code Online (Sandbox Code Playgroud)
这可能吗?
我不是在谈论JPEG的XMP数据包中嵌入的"人物标签".我在谈论用于识别新面孔的面部数据库.
我想在我的程序中添加使用已经训练过的WLPG数据库识别人脸的选项.我设法使用API(类型库dll)来检测面,但要识别它们,它需要一个在同一API中不可用的Exemplar Cache对象.我可以创建自己的对象,但我想使用已有的对象来避免对用户进行重复培训.
我知道数据库位于"%localappdata%\ Local\Microsoft\Windows Live Photo Gallery"中,并且它是SQL Server Compact Edition 3.1格式.我用Visual Studio 2010打开了数据库,但是我更喜欢在不直接访问数据库的情况下阅读它,而且我没有看到导出该功能的DLL.
顺便说一下,我正在使用Delphi 2010.
有任何想法吗?
我可以将参数传递给https://oauth.live.com/authorize,这会强制用户再次登录吗?
问题是如果用户已登录,它将透明地重定向回我的站点,即使用户想要使用其他Windows Live帐户也是如此.
Twitter的OAuth API接受"force_redirect = true",Facebook接受"auth_type = reauthenticate",但我找不到Windows Live.
所以我对ASP.NET MVC和Windows Live Connect API相当新.基本上我正在尝试将Live登录整合到我的网站中.当用户登录时,Live会请求他们为我的应用程序提供某些信息的权限,将用户发送到我的应用程序设置中指定的重定向uri,并附加查询字符串.在这里,如果用户第一次登录该站点,我希望他们的基本信息存储在我的服务器上(名字,姓氏,电子邮件).我已经能够获得他们的名字和姓氏,但我很难找到如何检索他们的主要电子邮件地址.我会解释到目前为止我做了什么.
我找不到将Live connect集成到MVC应用程序的最佳方法,所以我做了最好的猜测.我在我的重定向uri中指定了一个控制器动作,它采用查询字符串"code"来构造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";
Run Code Online (Sandbox Code Playgroud)
获取JSON格式的字符串响应并提取access_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();
Run Code Online (Sandbox Code Playgroud)
上面的GET调用为我提供了这个JSON字符串:
{
"id": "02b4b930697bbea1",
"name": …Run Code Online (Sandbox Code Playgroud) 所以,我正在一个网站上工作,我希望用户能够使用他们的xbox帐户登录,将他们的游戏玩家标签链接到我的网站.我可以像这样使用oauth:
但是,我无法弄清楚如何获得xbox实时权限.执行此操作的其他网站具有以下权限:
如何获得允许我从xbox帐户获取信息的权限,例如gamertag?在权限页面上,我没有在任何地方看到xbox.
有谁知道有没有办法在你的ASP.NET MVC网站中实现Windows Live ID身份验证.有一些关于OpenID实现的信息,它使用了一些库.那么有没有办法实现Live ID或它尚不支持.
谢谢
我一直从windows live收到此错误
输入参数'redirect_uri'的提供值无效.预期值为"https://login.live.com/oauth20_desktop.srf"或与重定向匹配的URL
为什么我一直收到这个错误.我在windows live developer app中设置了域名
在我的<head>元素中
<script src="//js.live.net/v5.0/wl.js"></script>
Run Code Online (Sandbox Code Playgroud)
就在我所拥有的<body>元素的正下方
WL.init({
client_id: '{S_AL_WL_CLIENT_ID}', //{S_AL_WL_CLIENT_ID} = phpbb template variable for client_id
redirect_uri: '{AL_BOARD_URL}', //{AL_BOARD_URL} = phpbb template variable for the urlencoded domain name
response_type: 'token',
scope: ["wl.signin", "wl.basic", "wl.birthday", "wl.emails", "wl.work_profile", "wl.postal_addresses"]
});
Run Code Online (Sandbox Code Playgroud)
登录按钮是
<div id="login">
<a href="#"><img src="images/windows_live_connect.png" alt="Windows Live" /></a>
</div>
Run Code Online (Sandbox Code Playgroud)
听众
jQuery('#login a').click(function(e)
{
e.preventDefault();
WL.login({
scope: ["wl.signin", "wl.basic", "wl.birthday", "wl.emails", "wl.work_profile", "wl.postal_addresses"]
}).then(function (response)
{
//do something with stuff here. You know brainy type ajaxy stuff …Run Code Online (Sandbox Code Playgroud) 我正试图通过Windows Live js API获得用户的联系.我已经阅读了官方文档,但是我在执行一个简单的连接时遇到了麻烦.
这是我做的:
WL.init({
client_id: 'myclientId',
redirect_uri: 'http://www.salezeotest.lan',
});
function signInUser() {
WL.login({
scope: ["wl.signin", "wl.basic", "wl.birthday", "wl.emails"]
}).then(
function(response)
{
console.log("logedin");
},
function(responseFailed)
{
console.debug(responseFailed);
console.log('error');
}
);
}
Run Code Online (Sandbox Code Playgroud)
单击按钮后,'signInUser'功能会被触发.发生了什么事情,当我点击它时,我得到实时弹出窗口输入我的凭据,并允许我的应用程序访问我放在"范围"中的东西.
然后,我单击"是"按钮以允许访问,并在弹出窗口中重定向到我的redirectURI(我可以在URL中看到访问令牌).但是没有任何事情发生,控制台没有记录任何东西,直到我关闭弹出窗口,然后我得到这个消息:
[WL] WL.login:弹出窗口在未经同意的情况下关闭.
我在本地测试它,我已经调整了我的主机文件.
有什么想法吗?!
我想知道Facebook,Twitter和LinkedIn(仅举几例)是如何使用Windows Live API查找用户朋友的电子邮件地址来向他们发送邀请.当我尝试使用Windows Live API时,我只获得email_hashes,它只能用于与系统的现有用户电子邮件进行比较,而不是向他们发送邀请.
这些服务是否支付Microsoft以获得高级API的好处?
谢谢你,塞巴斯蒂安
windows-live ×12
api ×3
oauth ×3
javascript ×2
live-sdk ×2
asp.net-mvc ×1
c# ×1
contacts ×1
delphi ×1
email ×1
hotmail ×1
json ×1
live ×1
liveconnect ×1
oauth-2.0 ×1
onedrive ×1
outlook.com ×1
phpbb ×1
phpbb3 ×1
profile ×1
xbox-one ×1