将照片上传到Facebook图形API - 发生了未知错误

时间:2012-11-23 09:38:36

标签: javascript facebook facebook-graph-api windows-8

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

我已经使用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来测试这个并且它可以工作。但是当发布到/照片时我遇到了问题。

我已将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应用程序。

1 个答案:

答案 0 :(得分:0)

好的,我修好了他们;这是怎么回事。

而不是:

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

我用过

var blob = canvas.msToBlob();

成功!!希望这有助于其他人。