Javascript Facebook开放图-使用不同链接共享自定义故事

Javascript Facebook开放图-使用不同链接共享自定义故事,javascript,facebook,facebook-graph-api,facebook-javascript-sdk,Javascript,Facebook,Facebook Graph Api,Facebook Javascript Sdk,为了解决这个问题,我已经绞尽脑汁三天了。相信我,我已经用尽了我的堆栈溢出选项,以及各种FB资源,所以我怀疑我没有理解一些东西 我正在使用Javascript SDK 简而言之,我的应用程序需要执行以下操作: 用户登陆主页用户填写测验 用户可以选择将结果共享到facebook timeline上的共享表示该用户是MyApp上的XXX类型的人 我已经设置了一个PHP页面,根据需要动态生成我的对象元标记。这是因为我需要共享标题包含人名和他们的个性类型,因此这两个元素需要动态生成并在生成的元标记中使用。

为了解决这个问题,我已经绞尽脑汁三天了。相信我,我已经用尽了我的堆栈溢出选项,以及各种FB资源,所以我怀疑我没有理解一些东西

我正在使用Javascript SDK

简而言之,我的应用程序需要执行以下操作:

用户登陆主页用户填写测验 用户可以选择将结果共享到facebook timeline上的共享表示该用户是MyApp上的XXX类型的人 我已经设置了一个PHP页面,根据需要动态生成我的对象元标记。这是因为我需要共享标题包含人名和他们的个性类型,因此这两个元素需要动态生成并在生成的元标记中使用。到目前为止,还不错

问题是:

每次我共享结果时,它都会共享动态对象PHP代码所在的URL,而不是我网站的索引页

如何让共享者共享指向主页的链接,而不是指向自定义对象代码所在位置的链接。我尝试添加href对象属性,在php生成的元数据中省略og:url标记,将og:url更改为所需的共享url等

如果我将og:url更改为我想要共享的链接,那么它会查看该链接中的图像、标题等,而不是php托管的自定义属性页

以下是我的FB.ui标记:

FB.ui({
    app_id: xxxxxxx,
    method: 'share_open_graph',
    action_type: 'helloweekend:is',
    action_properties: JSON.stringify(
    {
        weekend_person: "http://example.com/custom-object-page.php?og_personality=dummy&og_name=simon&og_track_id=123",
    }),
},
function(response){
    console.log(response);
});
mydomain.com上的页面将生成必要的标记,结果非常理想。共享者会说Simon是xxx上的一个虚拟类型的人,图像设置很好,因为它是动态设置的

这只是我有问题的最终共享URL,suer在点击他们时间线上的提要条目时被带到的那个URL,我想定制它

这是可能的,还是意味着我的对象也必须出现在主页上

编辑

从本质上说,我实际上是在分享一个并不真实存在的故事,这是一个根据测验结果创建的虚构故事,最终参考了主页

提前谢谢大家,,
西蒙

这是不可能的。相反,将跟随打开的图形对象链接的人类访问者从其Facebook提要重定向到索引页面,可以是客户端通过JavaScript,也可以是服务器端。后者需要Facebook scraper的异常,因此,它仍然可以从实际共享的URL读取您的元数据–请参阅“Like”按钮的说明,了解它发送的用户代理。@Cbroe-我怀疑可能是这种情况。您认为动态对象生成页面当前也可以将它自己的PHP脚本转移到主页上,还是将它保留在它自己的页面上。我唯一的抱怨是,当用户将鼠标悬停在时间线上的状态上时,他们会看到这个不太吸引人的URL。我想这是一个小小的牺牲。我在这里很懒,但是你有没有任何关于我需要从我的htaccess规则中排除哪些URL刮取器的参考资料?除了FB刮取器,你还需要排除哪些其他刮取器,这取决于你希望能够读取OG元数据以及Google的其他服务?啁啾还有其他可能阅读和使用这些的人。我可能只需要在这里使用JavaScript重定向,再加上一个链接/按钮,就可以为少数使用JS的用户打开主页。对了,明白了。再想一想,基于这是一个基于WordPress的网站这一事实,我可以使这个自定义打开的图形页面的模板与主页完全相同。取舍是URL参数的存在,但是,嘿,我们可以接受吗?如果您让用户首先到达共享URL,而不是自动将其重定向到主页,这甚至可能是有益的。这样,在该页面上,您可以向他们显示类似“用户Foobar确实参加了我们的测验/测试,他们的结果是[…]”,再加上明确的行动要求,“自己参加测试!”。展示他们的朋友得到了什么样的结果会使其更加个人化,从而增加参与度。