好的,我需要一些帮助。这就是我到目前为止所做的事情。
我已经使用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应用程序。
答案 0 :(得分:0)
好的,我修好了他们;这是怎么回事。
而不是:
var blob = canvas.toDataURL('multipart/form-data');
我用过
var blob = canvas.msToBlob();
成功!!希望这有助于其他人。