Получение данных из MS Live Calendar
В настоящее время я работаю над проектом портала для получения данных календаря с нескольких веб-сайтов (Google, Yahoo, Live/ Hotmail). проблема в том, что нашему приложению требуется сервис, который получает данные календаря с этих сайтов. моя команда уже избавилась от календаря Google и Yahoo, но теперь у нас возникли проблемы с живым календарем.
пока что мы уже попробовали и потерпели неудачу:
- Захват данных с помощью HTTP-запроса кажется невозможным, поскольку http://login.live.com/ полностью защищен с помощью javascript. мы потратили 3 дня, чтобы понять JS для входа в систему, но, похоже, Microsoft намного лучше нас:)
- Искал в сети информацию о 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 и связанных операций.