目前我正在开发一个门户项目,用于从多个网站(google,yahoo,live / hotmail)获取日历数据。 问题是我们的应用程序需要一个从这些网站获取日历数据的服务。我的团队已经摆脱了谷歌和雅虎日历,但现在我们遇到了直播日历的问题。
到目前为止,我们已经尝试过并失败了:
我有机会完成这项任务吗?
任何帮助,线索,技巧都会非常感谢,谢谢
注意:我们的应用程序客户端位于一个小型网络中,他们同意我们是否管理了他们的LIVE / YAHOO / GOOGLE帐户。
答案 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
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;
名称空间是否包含实时连接客户端和相关操作的核心逻辑。