通过 FB.ui 共享对话框动态生成显式共享的开放图故事的描述

2023-12-02

在我就此主题所做的所有研究中,90% 都已过时,这让我相信 Facebook JS SDK 最近在明确共享 Open Graph 故事方面发生了变化。我有以下代码:

function postToFB(desc){
FB.ui({
    method: 'share_open_graph',
    action_type: 'mynamespace:myaction',
    action_properties: JSON.stringify({
        myobject: "myobjectid"
    })
}, function(response){});
}

这样做的问题是,它将尝试仅与我在应用程序设置的 Facebook Open Graph 部分中设置的设置共享 myobject。我想使用相同的对象,但每次共享时都使用动态“desc”变量更改描述。有谁知道如何做到这一点?我可以在应用程序设置的 Facebook Open Graph 部分静态设置标题,但我需要在每次共享时动态设置它。

我已经通过 Facebook JS SDK 搜索了可以添加到 action_properties 的其他键/值对,但是 SDK 在这方面的信息非常有限。

UPDATE

我修改了代码以包含 2 个调用,一个用于创建对象,第二个用于使用新对象的信息发布故事。这是代码:

function postToFB(desc){
FB.api(
    'me/objects/mynamespace:myobject',
    'post',
    {
    object: {
        "app_id": myappid,
        "type": "mynamespace:myobject",
        "url": "myurl",
        "title": "mytitle",
        "image": "myimgurl",
        "description": desc
        }
    },
    function(response) {
        console.log(response);
        FB.ui({
            method: 'share_open_graph',
            action_type: 'mynamespace:myaction',
            action_properties: JSON.stringify({
                myobject: response.id
        })
    }, function(r){});
});
}

然而,根据这个问题的评论:Facebook 对象 API - 创建重复对象Facebook 的一名工作人员表示,这种方法不会得到 Facebook 的批准,因为用户的一个操作不能产生两个帖子,而这段代码现在可以做到这一点。一种会将对象发布到 Facebook 用户的活动日志,另一种将其发布到活动日志和新闻源。

如果我可以只进行一次调用并规定 FB.ui 函数本身的 myobject 描述应该是什么,那就太好了。有谁知道如何做到这一点?


我想到了。我遇到的主要问题是,当我应该发布到应用程序/对象(这将创建对象但不发布事件)时,我却发布到我/对象(这将向用户的活动日志发布事件)。由于发布到 app/anything 需要访问令牌,我必须更改 PHP 中服务器端发生的初始调用:

$request = new FacebookRequest(  
null,  
'POST',  
'/app/objects/mynamespace:myobject', 
array(
        'access_token' => 'myaccesstoken',
    'object' => json_encode(array(
        'app_id' => myappid,
            'url' => 'myurl',
            'title' => 'mytitle',
            'image' => 'myimg',
            'description' => 'mydesc'
        ))
)
);
$response = $request->execute();
$obj = $response->getGraphObject();
echo $obj->getProperty('id');

从那里我可以使用 JS 脚本将具有新 ID 的对象发布到用户的 feed 中。

希望这可以防止您像我一样花费两天半时间尝试自己解决问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 FB.ui 共享对话框动态生成显式共享的开放图故事的描述 的相关文章

随机推荐