我正在使用Skydrive API,我希望我的用户能够打开一个文件视图,您可以在其中编辑它(当您在skydrive网站上时,我们可以获得与文件相同的视图页)。
可能有一个WL功能,但我找不到它。另一个解决方案是让我获取视图页面的URL并使用javascript在新窗口中打开它。
答案 0 :(得分:0)
我已经使用SkyDrive及其API实现了此解决方案。您也可以在Microsoft's Interactive Live SDK在线工具中试用此脚本。关键是获取您要打开的文件的SkyDrive重定向链接。为Get api的json结果中的每个文件返回此重定向链接。
WL.init({ client_id: clientId, redirect_uri: redirectUri });
WL.login({ "scope": "wl.skydrive" }).then(
function(response) {
getFiles();
},
function(response) {
log("Could not connect, status = " + response.status);
}
);
function getFiles() {
var files_path = "/me/skydrive/files";
WL.api({ path: files_path, method: "GET" }).then(
onGetFilesComplete,
function(response) {
log("Cannot get files and folders: " +
JSON.stringify(response.error).replace(/,/g, ",\n"));
}
);
}
function onGetFilesComplete(response) {
var items = response.data;
var foundFolder = 0;
for (var i = 0; i < items.length; i++) {
if (items[i].type === "file" &&
items[i].name === "robots.txt") {
log("Found a file with the following information: " +
JSON.stringify(items[i]).replace(/,/g, ",\n"));
foundFolder = 1;
//open file in a new browser window
window.open(items[i].link);
break;
}
}
if (foundFolder == 0) {
log("Unable to find any file(s)");
}
}
function log(message) {
var child = document.createTextNode(message);
var parent = document.getElementById('JsOutputDiv') || document.body;
parent.appendChild(child);
parent.appendChild(document.createElement("br"));
}