好的,所以我需要一些帮助。这就是我到目前为止所做的。
我已经使用 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 应用程序。