问题 如何从Windows Live获取用户的联系人电子邮件数据?


我知道有类似的问题,但请耐心等待......

我遇到类似的问题,其他提问者只关于获得哈希版本的联系电子邮件地址, 并理解为什么

问题是,我注意到谷歌+似乎能够使用LiveConnect获得联系电子邮件地址。使用fiddler,我注意到他们似乎在请求一个认证范围“wl.contacts_emails” 似乎没有记录

一些谷歌搜索建议“增强的权限”,但在他们的网站上设置或编辑Windows Live连接应用程序时没有提到这一点。

如何在我的应用程序上获得此范围?


7142
2018-02-23 16:20


起源

这个范围对我有用。我不知道你缺少什么。请在这里发表评论,我可以帮助您找到解决方案。 - nalply
我注意到这一点,如果这个范围仍然有效,我感兴趣。我在现场的sdk演示中尝试了它并且它有效,但拒绝通过我的网络应用程序的oauth工作。它仍在你的情况下吗? - FreeCandies
@FreeCandies请参阅我对以下答案的回复。检查用于授权的URL并获取访问令牌。 - Vilinkameni


答案:


它适合我在生产中使用 wl.contacts_emails 和这个结合 wl.emails。我没有用wl.contacts_emails测试它,但是linkedin使用两个范围。

WL.init 这是使用的全部范围:

WL.login({
    scope: ['wl.basic', 'wl.emails', 'wl.contacts_emails'],
}).then(function(response) {

它仍然没有记录,微软也有 明确说明 您无法获得联系电子邮件地址,因此请谨慎使用。然而,整个oauth系统是我曾经使用的api最大的笑话,所以我猜它只是集群效应,有人只是忘了把它写下来。

编辑: 全文 就在这里,微软已经确认存在 wl.contacts_emails并声称它们只适用于与他们达成协议的某些合作伙伴。然而,他们正在撒谎以掩盖他们的轨道,它适用于所有客户。整件事情一团糟。

TL; DR wl.contacts_emails 虽然有效,但他们不会承认这一点,所以在将来的某个时候他们可能会从你身下扯掉它。


10
2017-10-17 19:54



非常感谢你!这就是我需要的! - Denis Óbukhov
这似乎不再起作用了。我正进入(状态 ?error=invalid_scope&error_description=The%20provided%20value%20for%20the%20input%20parameter%20%27scope%27%20is%20not%20valid%20for%20this%20client%20application. (错误“输入参数'范围'的提供值对此客户端应用程序无效。”)当我尝试使用时添加到我的端点URL wl.contacts_emails 和这个结合 wl.emails 和 wl.basic 如 scope。我打电话的时候 /me/contacts 同 wl.basic,wl.emails,wl.contacts_emails 但是,通过“交互式Live SDK”,它确实为我的联系人列表提供了电子邮件。 - Vilinkameni
更新:我将这些参数传递给时似乎遇到此错误 https://oauth.live.com/authorize 和 https://oauth.live.com/token (默认来自 oauth2-client 用于PHP的库),但是当我将URL更改为 https://login.live.com/oauth20_authorize.srf 和 https://login.live.com/oauth20_token.srf 分别在“微软”类中,如下 这里的建议, 有效。 - Vilinkameni
而且,我改变了 wl.emails 至 wl.signin,遵循该文章的流程。 - Vilinkameni