Как я могу загрузить файл программно через 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? Или я должен использовать другой способ полностью?