0

わかりましたので、少し助けが必要です。これは私がこれまでに行っていることです。

Web 認証ブローカーの例を使用して、Facebook のアクセス トークンを取得し (もちろん、投稿できるように「publish_stream」スコープを追加しました)、ローカル設定に保存しました。

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がこのスレッドで提案したハックを使用します。

ただし、次のエラーが表示されます。

(#1) An unknown error occurred

だから今私は立ち往生しています。

私は一日中グーグルで検索しましたが役に立たなかったので、コミュニティに助けを求めています。誰かがコードを見て、私が間違っている可能性があることを教えてもらえますか??

ありがとうございます!

ところで、Visual Studio を使用しています。これは Windows 8 アプリ用です。

4

1 に答える 1

0

OK私はそれを修正しました。これがその方法です。

それ以外の:

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

使用しました

var blob = canvas.msToBlob();

成功!!これが他の人々に役立つことを願っています。

于 2012-11-25T08:38:59.080 に答える