1

目前我正在从事一个门户项目,用于从多个网站(google、yahoo、live/hotmail)获取日历数据。问题是我们的应用程序需要从这些网站获取日历数据的服务。我的团队已经摆脱了谷歌和雅虎日历,但现在我们遇到了实时日历的问题。

到目前为止,这是我们已经尝试过但失败的方法:

  1. 使用 HTTP 请求获取数据似乎是不可能的,因为http://login.live.com使用 javascript 完全保护。我们花了 3 天时间来了解登录的 JS,但微软似乎比我们好得多 :)
  2. 通过网络搜索 LIVE CONNECT API,但现在可以动态登录(通过提供用户名/密码)到 MS Live。我们不能使用实时登录按钮,因为我们的流程完成了一个服务层。(或者也许我错过了什么?)

我有机会完成这个任务吗?

任何帮助,线索,技巧将不胜感激,谢谢

注意:我们的应用程序客户位于一个小型网络中,如果我们管理他们的 LIVE/YAHOO/GOOGLE 帐户,他们会同意。

4

2 回答 2

1

答案是否定的!您无法通过提供电子邮件/密码从 MS LIVE 获取日历/事件,因为 MS LIVE 使用 OAUTH。

您可以做的最好的方法是,从您的客户端应用程序中显示实时 OAUTH 登录,然后从那里获取身份验证令牌。然后将身份验证令牌传递给服务器端。获取您需要的日历或活动。

这是步骤:

获取您的应用程序客户端 ID

转到:https ://manage.dev.live.com/Applications/Index

创建登录表单

在您的客户端应用程序中,您通过显示浏览器控件来创建登录表单,网址为:

https://oauth.live.com/authorize?response_type=token&client_id=YOUR_APP_CLIENTID&scope=SCOPE&locale=en&redirect_uri=https://oauth.live.com/desktop&auth_redirect=true&wa=wsignin1.0

  • YOUR_APP_CLIENTID:您在第一步注册时获得的客户端 ID。
  • 范围:应该wl.calendars+wl.basic 在文档中看到更多

然后在用户允许身份验证后,浏览器将重定向到:

https://oauth.live.com/desktop#access_token=ACCESS_TOKEN
   &token_type=TOKEN_TYPE&expire=EXPIRE

在那里你可以从那里提取 ACCESS_TOKEN 。

抓住日历/事件

所以现在您的客户端应用程序已经有 ACCESS_TOKEN 然后将其传递给您的服务以获取日历(请记住 ACCESS_TOKEN 有一个超时)。然后,您的服务应该执行 REST 调用:

https://apis.live.net/v5.0/me/calendars?access_token=ACCESS_TOKEN

或者

https://apis.live.net/v5.0/me/events?start_time=2012-10-01T00:00:00Z
     &end_time=2012-10-03T00:00:00Z&access_token=ACCESS_TOKEN

有关更多信息,请参阅:http: //msdn.microsoft.com/en-us/library/live/hh826523.aspx

祝你好运

于 2012-10-17T04:43:42.287 回答
0

从微软网站....

您的应用程序可以使用 Live Connect API 创建、读取、更新和删除 Hotmail 用户的日历。您的应用程序还可以订阅公共日历,例如假期列表。

所以我认为这是你去看看的地方。日历(Live Connect API);是的,C# 中也有示例。

概念说明...基本上您需要使用public class LiveConnectClientWindows 8 中提供的功能来完成此操作。

using Microsoft.Live;  
using Microsoft.Live.Controls;

是包含实时连接客户端和相关操作的核心逻辑的名称空间。

于 2012-10-03T05:42:03.727 回答