从MS Live日历中获取数据

时间:2012-10-03 05:24:39

标签: c# liveconnect live-connect-sdk

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

到目前为止,我们已经尝试过并失败了:

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

    任何帮助,线索,技巧都会非常感谢,谢谢

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

2 个答案:

答案 0 :(得分: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。
  • SCOPE:应为wl.calendars+wl.basic see more on documentation

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

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

祝你好运

答案 1 :(得分:0)

来自Microssoft网站......

  

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

所以我认为这是你去看看的地方.. Calendars (Live Connect API);是的,C#中也有样本。

概念解释......基本上你需要使用Windows 8中提供的public class LiveConnectClient来完成这项工作。

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

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