Подтвердить что ты не робот

API Onedrive против LiveSDK

Я разрабатываю WP8.1 и, вероятно, буду переносить другие формы. Я хочу интегрировать функциональность OneDrive, однако я не могу понять, в чем разница между LiveSDK (от пакетов Nuget) и OneDrive API от https://dev.onedrive.com Кажется, что Microsoft вообще не общается относительно этого, я действительно не понимаю, почему. Насколько я понял, LiveSDK является старым и будет заменен на OneDrive API, но LiveSDK кажется гораздо проще использовать, что я не могу понять их логику... Кроме того, как недавно были обновлены (в апреле для LiveSDK).

Итак, мой вопрос: до тех пор, пока мое приложение еще не опубликовано, следует ли перейти на OneDrive API или сохранить LiveSDK? Кто-нибудь уже пробовал оба? Каковы ограничения и преимущества обоих?

На основе перспективного зрения я поеду за OneDrive API, но моя главная проблема:

Можно ли легко войти на OneDrive API, чем с помощью Live SDK? (Рабочее временное решение ниже)

В настоящее время я могу войти в систему с помощью LiveSDK с помощью одной кнопки и трех строк кода, без какого-либо ввода пользователя, где метод AuthenticateAndContinue, используемый OneDrive API, открывает веб-контроль и требуется ввести вручную логин и пароль.

В конце я использовал аутентификацию LiveSDK и использовал токен доступа, предоставляемый с помощью OneDrive API. Это не чистый подход с моей точки зрения, но мне не удалось заставить метод AuthenticateAndContinue работать (я получаю сообщение об ошибке 404 после входа в систему).

Если у кого-то есть лучшее решение, я открыт для предложений:)

Итак, мой текущий метод следующий:

  • Аутентификация с использованием API LiveSDK
  • Используйте cookie сеанса и API OneDrive оттуда

Упрощенный код выглядит следующим образом:

Метод, приведенный ниже, позволяет тихо регистрироваться, только в первый раз требуется ручная проверка пользователя, позволяющая программе использовать свою учетную запись Live.

Он не требует от пользователя пароля

var authClient = new LiveAuthClient();
var authResult = await authClient.LoginAsync(new string[] {  
        "wl.signin", "onedrive.readwrite", "onedrive.appfolder"});

if (authResult.Session == null)
    throw new InvalidOperationException("You need to sign in and give consent to the app.");

var Connection = new ODConnection("https://api.onedrive.com/v1.0", 
    new MicrosoftAccountAuthenticationInfo() { TokenType = "Bearer", 
    AccessToken = odArgs.Session.AccessToken });

Это не так чисто, как хотелось бы (используя 2 разных SDK), но он работает:)

4b9b3361