使用FB.ui无法正常使用Facebook上的分阶段图像分享自定义故事

时间:2014-06-18 17:35:14

标签: facebook facebook-graph-api

我有以下代码,用于暂存画布图像,然后使用FB.ui创建对象以进行共享。暂存图像和创建对象工作没有问题,但不显示共享对话框。如果我用create url替换了create对象中的image参数,那么它正在工作。

我的代码有什么问题:

var userAccessToken = $("#user_access_token").val();
var appAccessToken = $("#app_access_token").val();
try {
    blob = dataURItoBlob(dataURL);
} catch (e) {
    console.log(e);
}
var fd = new FormData();
fd.append("access_token", userAccessToken);
fd.append("file", blob);
try {
   var imageURI;
   $.ajax({
        url: "https://graph.facebook.com/me/staging_resources",
        type: "POST",
        data: fd,
        processData: false,
        contentType: false,
        cache: false,
        success: function (data) {
            console.log("success " + data['uri']);
            imageURI = data['uri'];
        },
        error: function (shr, status, data) {
            console.log("error " + data + " Status " + shr.status);
        },
        complete: function () {
            FB.api(
                'https://graph.facebook.com/app/objects/myappnamespace:myobject',
                'post',
                {
                    access_token : appAccessToken,
                    object:{
                        app_id: myappid,
                        url: "myappurl",
                        title: "Sample Photo",
                        image: {
                            url:imageURI,
                            user_generated:true
                        },
                        description: ""
                    }
                },
                function(response) {
                    var objectId = response['id'];
                    FB.ui({
                        method: 'share_open_graph',
                        action_type: 'myappnamespace:myaction',
                        action_properties: JSON.stringify({
                            myobject:objectId
                        })
                    }, function(response){});
                }
            );
        }
    });
} catch (e) {
    console.log(e);
}

1 个答案:

答案 0 :(得分:0)

最后我通过将user_generated参数从true更改为false

来找到解决方案

现在创建对象的代码如下所示:

FB.api(
                'https://graph.facebook.com/app/objects/myappnamespace:myobject',
                'post',
                {
                    access_token : appAccessToken,
                    object:{
                        app_id: myappid,
                        url: "myappurl",
                        title: "Sample Photo",
                        image: {
                            url:imageURI,
                            user_generated:false
                        },
                        description: ""
                    }
                }