API Onedrive против LiveSDK

Я разрабатываю для WP8.1 и, вероятно, буду портировать на другие платформы. Я хочу интегрировать функциональность OneDrive, однако не могу понять, в чем разница между LiveSDK (из пакетов NuGet) и OneDrive API.

Кажется, что Microsoft вообще не общается по этому поводу, я действительно не понимаю, почему. Насколько я понял, LiveSDK является старым и будет заменен на OneDrive API, но LiveSDK кажется настолько более простым в использовании, что я не могу понять их логику... Кроме того, оба недавно были обновлены (в Апрель для LiveSDK).

Итак, мой вопрос

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

Основываясь на перспективном прицеле, я выберу OneDrive API, но меня больше всего волнует следующее:

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

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

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

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


person Jean    schedule 30.05.2015    source источник
comment
Я решил свою проблему (жду улучшения нового OneDrive API SDK), но я был бы рад любому предложению, позволяющему аутентифицироваться более чистым способом.   -  person Jean    schedule 31.05.2015
comment
Я в похожей ситуации, Жан, где ты нашел соответствующие ресурсы? Я до сих пор не знаю, как подключить OneDrive к моему приложению WP 8.1. Я хочу загрузить файл в OneDrive из своего приложения WP 8.1, какие-нибудь ресурсы?   -  person J86    schedule 22.06.2015
comment
Извините за задержку с ответом. Честно говоря, я до сих пор не могу нормально скачать файл с помощью фонового загрузчика (передача никогда не заканчивается и файл не пишется на телефоне). Там есть несколько примеров github.com/OneDrive/onedrive-explorer-win, но к сожалению, когда я использую свой собственный код, он не работает должным образом...   -  person Jean    schedule 26.06.2015


Ответы (1)


[Решение извлечено из вопроса, чтобы выйти из стека «без ответа»]

Таким образом, мой текущий метод заключается в следующем:

  1. Аутентификация с помощью LiveSDK API
  2. Используйте файл 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), но работает :)

person Jean    schedule 03.04.2018