peter
peter

Reputation: 51

How to redirect to file picker

I am a freshman on skydrive. then I want to use file picker in html, and copy the demo code from Interactive Live SDK. but the running result, the open window is not direct to file picker page, just direct to my setting redirect_uri page. so what's wrong with my demo page? thanks

<script src="http://js.live.net/v5.0/wl.js" type="text/javascript"></script>

<script type="text/JavaScript">
<!--

   /////////////////////////////
    WL.init({ client_id: '$my appID', redirect_uri: 'http://www.learnyouwant.com' });

    WL.ui({
        name: "skydrivepicker",
        element: "downloadFile_div",
        mode: "open",
        select: "multi",
        onselected: onDownloadFileCompleted,
        onerror: onDownloadFileError
    });

    WL.login({ "scope": "wl.skydrive wl.signin" }).then(
        function(response) {
            openFromSkyDrive();
        },
        function(response) {
            log("Failed to authenticate.");
        }
    );

    function openFromSkyDrive() {
        WL.fileDialog({
            mode: 'open',
            select: 'single'
        }).then(
            function(response) {
                log("The following file is being downloaded:");
                log("");

                var files = response.data.files;
                for (var i = 0; i < files.length; i++) {
                    var file = files[i];
                    log(file.name);
                    WL.download({ "path": file.id + "/content" });
                }
            },
            function(errorResponse) {
                log("WL.fileDialog errorResponse = " + JSON.stringify(errorResponse));
            }
        );
    }

    function log(message) {
        var child = document.createTextNode(message);
        var parent = document.getElementById('JsOutputDiv') || document.body;
        parent.appendChild(child);
        parent.appendChild(document.createElement("br"));
    }

    function onDownloadFileCompleted(response) {
        var msg = "";
        // For each folder selected...
        if (response.data.folders.length > 0) {
            for (folder = 0; folder < response.data.folders.length; folder++) {
                // Use folder IDs to iterate through child folders and files as needed.
                msg += "\n" + response.data.folders[folder].id;
            }
        }
        // For each file selected...
        if (response.data.files.length > 0) {
            for (file = 0; file < response.data.files.length; file++) {
                // Use file IDs to iterate through files as needed.
                msg += "\n" + response.data.files[file].id;
            }
        }
        log(msg);
    };

    function onDownloadFileError(responseFailed) {
        log(responseFailed.error.message);
    }

//-->
</script>

Upvotes: 3

Views: 700

Answers (1)

peter
peter

Reputation: 51

I found the reason. the redirect_uri must same with the filling in the app registeration.

Upvotes: 2

Related Questions