Как я могу загрузить файл программно через JavaScript для Skydrive?

Мы создаем веб-приложение, в котором документ создается на стороне сервера. Мы можем получить этот документ в javascript с помощью вызова REST, а затем загрузить его в SkyDrive.

Когда я использую Live Connect API, я могу загрузить файл, который я выбрал, через файл типа элемента INPUT, следуя примеру на: http://msdn.microsoft.com/en-us/library/live/hh550848.aspx.

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

Я попробовал следующее, чтобы заставить его работать программно, но для этого мне нужен access_token. Я не мог найти способ извлечь его из WL API-объект.

 function uploadFile() {
        WL.login({
            scope: "wl.skydrive_update"
        }).then(
            function (response) {
               var filePicker = document.getElementById('filePicker');
               var file = filePicker.files[0];
           var path = file.name;
               var reader = new FileReader();
               reader.onload = function (e) {
                   var c = e.result,
                       request = new XMLHttpRequest;
               request.open("PUT", "https://apis.live.net/v5.0/me/skydrive/files/" + path + "?access_token=" + token, true);
               request.onload = function (e) {
                       console.log("Ok")
                   };
                   request.onerror = function (e) {
                       console.log("Error")
                   };
                   request.send(c)
               };
               reader.readAsArrayBuffer(file);
           } 
       );
  }

Могу ли я использовать Live Connect API для загрузки файлов "программно"? Если нет, как я могу извлечь токен доступа из WL объект API? Или я должен использовать другой способ полностью?

1 ответ

Вот пример учебника: https://developers.google.com/drive/quickstart-js

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