能否在share_open_graph代码中添加Facebook Open Graph分享位置选项?
关于Facebook Open Graph分享添加位置选项的解答
嘿,这个问题我刚好琢磨过!先给你明确答案:目前Facebook的share_open_graph方法本身并不支持直接添加“分享位置”的自定义选项。原因是og.shares这个Open Graph动作的设计核心就是聚焦于内容本身的传播,位置信息并不是这个动作的标准内置属性。
不过别担心,有两个替代方案可以实现类似需求,看你具体场景选:
方案1:给分享的内容关联固定地点
如果你的需求是让分享出去的内容本身绑定一个固定的地点(比如你的店铺、活动场地),可以在Open Graph对象里添加og:place属性,这个属性需要指向一个已存在的Facebook地点页面的URL。修改后的代码大概是这样:
FB.ui({ "method": "share_open_graph", "action_type": "og.shares", "action_properties": JSON.stringify({ object: { 'og:url': url, 'og:title': title, 'og:description': description, 'og:image': thumb, 'og:place': 'https://www.facebook.com/your-official-place-page-url' // 替换成你的地点页面URL } }) });
注意:这个地点必须是Facebook上已经创建的官方地点页面,不然无法识别生效。
方案2:让用户手动选择/设置分享位置(换用Feed Dialog)
如果想让用户在分享时可以自主选择位置,那share_open_graph就满足不了了,得换成Facebook的Feed Dialog(feed方法),这个方法支持place参数,你可以预设一个地点ID,用户也能在弹窗里手动修改或选择其他位置。示例代码如下:
FB.ui({ method: 'feed', link: url, title: title, description: description, picture: thumb, place: 'your-place-id' // 替换成目标地点的Facebook ID,也可以留空让用户自己选 }, function(response) { // 分享后的回调逻辑 if (response && !response.error_message) { console.log('分享成功!'); } else { console.log('分享取消或失败'); } });
这里的地点ID可以在Facebook地点页面的URL里找到,比如页面URL是https://www.facebook.com/pages/xxx/123456789,那ID就是123456789。
内容的提问来源于stack exchange,提问作者Toniq
相关产品推荐
相关产品推荐

