0

好的,所以我需要一些帮助。这就是我到目前为止所做的。

我已经使用 Web 身份验证代理示例来为 facebook 提取我的访问令牌(当然,我添加了 'publish_stream' 范围以确保我可以发布),并将其保存在 localsettings 中,如下所示:

function callbackFacebookWebAuth(result) {
    var url = result.responseData;

    var param1 = url.split("&");
    var param2 = param1[0].split("=");

    localSettings.values["Facebook.AccessToken"] = param2[1];

}

这工作正常。成功。

然后,我试图上传这样的图片:

        var accessToken = localSettings.values["Facebook.AccessToken"];
        console.log(accessToken);

        var blob = canvas.toDataURL('multipart/form-data');
        console.log(blob);
        var filename = "photo.jpg";
        var data = new FormData();
        data.append("access_token", accessToken);
        data.append("message", "test");
        data.append("source\"; filename=\"" + filename + "\"", blob);


        WinJS.xhr({
            type: "POST",
            url: "https://graph.facebook.com/me/photos?access_token=" + accessToken,
            data: data,
        }).then(function (response) {
            console.log("success");
        }, function (errorResponse) {
            var result = JSON.parse(errorResponse.responseText);
            console.error(result.error.message);

        });

该代码似乎应该可以工作。我已经通过仅将文本发布到 /feed 来对此进行测试,并且它可以工作。但是,当发布到 /photos 时,我遇到了问题。

我已将 Canvas 内容转换为 dataUrl(为此 POST 命令建议的“multipart/form-data”)

我使用 Synergist 在此线程中建议的 hack:http: //social.msdn.microsoft.com/Forums/en-US/winappswithhtml5/thread/0d23db45-afea-4886-b3ca-522a6919c9f7

但是我收到以下错误:

(#1) An unknown error occurred

所以现在我被困住了。

我在谷歌上搜索了一整天都无济于事,所以我正在向社区寻求帮助。有人可以看看代码并告诉我我可能做错了什么吗?

将不胜感激!

顺便说一句,我正在使用 Visual Studio;这适用于 Windows 8 应用程序。

4

1 回答 1

0

好的,我修好了伙计们;这里是如何。

代替:

var blob = canvas.toDataURL('multipart/form-data');

我用了

var blob = canvas.msToBlob();

成功!!希望这对其他人有所帮助。

于 2012-11-25T08:38:59.080 回答