Получение данных из MS Live Calendar

В настоящее время я работаю над проектом портала для получения данных календаря с нескольких веб-сайтов (Google, Yahoo, Live/ Hotmail). проблема в том, что нашему приложению требуется сервис, который получает данные календаря с этих сайтов. моя команда уже избавилась от календаря Google и Yahoo, но теперь у нас возникли проблемы с живым календарем.

пока что мы уже попробовали и потерпели неудачу:

  1. Захват данных с помощью HTTP-запроса кажется невозможным, поскольку http://login.live.com/ полностью защищен с помощью javascript. мы потратили 3 дня, чтобы понять JS для входа в систему, но, похоже, Microsoft намного лучше нас:)
  2. Искал в сети информацию о LIVE CONNECT API, но теперь есть способ динамического входа (путем предоставления имени пользователя и пароля) в MS Live. Мы не можем использовать кнопку Live Login, потому что наш процесс сделал один сервисный слой. (или, возможно, я что-то пропустил?)

есть ли у меня шанс выполнить эту задачу?

любая помощь, подсказка, трюк высоко оценят, спасибо

ПРИМЕЧАНИЕ: наши клиенты приложений находятся в небольшой сети, и они соглашаются, управляли ли мы их учетной записью LIVE/YAHOO/GOOGLE.

2 ответа

Решение

Ответ НЕТ! Вы не можете получить календарь / события из MS LIVE, указав адрес электронной почты / пароль, потому что MS LIVE использует OAUTH.

лучший способ сделать это - из своего клиентского приложения открыть действующий логин OAUTH и получить оттуда токен аутентификации. затем передайте токен аутентификации на сторону сервера. чтобы получить календарь или события, которые вам нужны.

вот шаг:

Получите свой идентификатор клиента приложения

перейти по адресу: 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: идентификатор клиента, который вы получаете при регистрации на первом шаге.
  • ОБЛАСТЬ ПРИМЕНЕНИЯ: должно быть 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

Удачи

С сайта Microssoft....

Ваши приложения могут использовать API Live Connect для создания, чтения, обновления и удаления календарей пользователя Hotmail. Ваши приложения могут также подписаться на общедоступные календари, такие как список праздников.

Так что я думаю, что это то место, куда вы можете обратиться. Календари (Live Connect API); И да, есть примеры и в C#.

Объяснение концепции... В основном вам нужно использовать public class LiveConnectClient это доступно в Windows 8, чтобы сделать это.

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

Являются ли пространства имен, которые содержат основную логику для клиента live connect и связанных операций.

Другие вопросы по тегам