我希望社区能够提供一些建议,因为我在这里遇到了一个相当棘手的问题。我的问题如下:
我创建了一个包含大量动态内容的网站,所有内容都是通过 AJAX 拉取并通过 JS 显示的。我目前允许直接链接到我的内容的方式是通过使用 JS 在飞行中修改片段标识符,以下是一个示例:
你可能会先想到:为什么不使用GET请求或查询字符串呢?例如:
所以我�在有点困惑。我唯一能想到的�解决方案是�时使用以下两�方法:
在Facebookçš„like请求ä¸ä½¿ç”¨getå�‚数,在直æ�¥é“¾æ�¥ä¸ä½¿ç”¨ç‰‡æ®µæ ‡è¯†ç¬¦ã€‚
但这会带�以下问题:
如æ�œç”¨æˆ·åœ¨Facebook上粘贴了一个直æ�¥é“¾æ�¥ï¼Œå®ƒå°†åŒ…æ‹¬ç‰‡æ®µæ ‡è¯†ç¬¦ï¼Œå¹¶ä¸”æ£ç¡®çš„元数æ�®ä¸�会在Facebook上显示。
我需è¦�å�šä¸€äº›å¥‡æ€ªçš„é‡�定å�‘é”术æ�¥ä¿®å¤�URLæ ¼å¼�ä»¥åˆ é™¤ID(å�³æ£€æµ‹æ˜¯å�¦ä¼ 递GETå�‚数并é‡�定å�‘åˆ°ç›¸åº”çš„ç‰‡æ®µæ ‡è¯†ç¬¦ï¼‰ã€‚ä½†æˆ‘ä¸�知é�“FB是å�¦ä¹Ÿä¼šé�µå¾ªé‡�定å�‘,并ä»�é‡�定å�‘的页é�¢è�·å�–å…ƒæ ‡è®°ï¼Œè€Œä¸�是第一页,这将使æ¤è§£å†³æ–¹æ¡ˆæ— 用。
抱æ‰è®©ä½ 看了这么多文å—ï¼�感谢您æ��供的任何建议。 编辑:我刚刚测试了我的提议解决方案,结合两种方法,我可以确认Facebook遵循重定向,所以这个解决方案根本不起作用。这很令人沮丧!
编辑编辑:实现我的“混合”想法的一种可能的方法是使用window.location重定向而不是PHP header()调用重定向,这样Facebook就可以从原始页面获取元标记,适用于那些有类似问题的人。
谢谢。
我创建了一个包含大量动态内容的网站,所有内容都是通过 AJAX 拉取并通过 JS 显示的。我目前允许直接链接到我的内容的方式是通过使用 JS 在飞行中修改片段标识符,以下是一个示例:
http://www.mysite.com/home#/123
这里的123是内容的ID。当内容关闭时,它会再次去掉片段标识符。
这个方法非常有效,当人们加载页面时,我的AJAX请求成功地请求了“123”文章。但我刚刚在所有文章上实现了Facebook点赞按钮,现在我遇到了瓶颈。
基本上,Facebook找到与您“喜欢”的内容相关联的缩略图、标题和URL的方式是检查传递到fb like iframe的URL的元标记。它通过在URL上进行GET请求,检查元标记的内容,然后在Facebook上显示这些内容来实现这一点。
问题是片段标识符不会传递到服务器,所以我没有办法在PHP中(我知道的)使用特定请求的文章内容动态生成这些元标记。
例如,我想能够做这样的事情:
$id_vals = get_id_values($hash_fragment);
echo '<meta property="og:title" content="'.$id_vals['title'].'" />';
你可能会先想到:为什么不使用GET请求或查询字符串呢?例如:
http://www.mysite.com/home?id=123
然而,这ç§�方法的问题在äº�Javascriptæ— æ³•åŠ¨æ€�更改URL的一部分,它å�ªèƒ½æ›´æ”¹ç‰‡æ®µæ ‡è¯†ç¬¦ã€‚è¿™æ„�味ç�€æ‰€æœ‰ç›´æ�¥é“¾æ�¥åˆ°æˆ‘ä»¬æ–‡ç« çš„é“¾æ�¥éƒ½éœ€è¦�页é�¢åˆ·æ–°ã€‚è¿™ä¸�我们整个“动æ€�â€�方法相è¿�背 - 我必须补充的是,这真的很好🙂所以我ç�°åœ¨æœ‰ç‚¹å›°æƒ‘。我唯一能想到的å�Šè§£å†³æ–¹æ¡ˆæ˜¯å�Œæ—¶ä½¿ç”¨ä»¥ä¸‹ä¸¤ç§�方法:
在Facebookçš„like请求ä¸ä½¿ç”¨getå�‚数,在直æ�¥é“¾æ�¥ä¸ä½¿ç”¨ç‰‡æ®µæ ‡è¯†ç¬¦ã€‚
但这会带�以下问题:
如æ�œç”¨æˆ·åœ¨Facebook上粘贴了一个直æ�¥é“¾æ�¥ï¼Œå®ƒå°†åŒ…æ‹¬ç‰‡æ®µæ ‡è¯†ç¬¦ï¼Œå¹¶ä¸”æ£ç¡®çš„元数æ�®ä¸�会在Facebook上显示。
我需è¦�å�šä¸€äº›å¥‡æ€ªçš„é‡�定å�‘é”术æ�¥ä¿®å¤�URLæ ¼å¼�ä»¥åˆ é™¤ID(å�³æ£€æµ‹æ˜¯å�¦ä¼ 递GETå�‚数并é‡�定å�‘åˆ°ç›¸åº”çš„ç‰‡æ®µæ ‡è¯†ç¬¦ï¼‰ã€‚ä½†æˆ‘ä¸�知é�“FB是å�¦ä¹Ÿä¼šé�µå¾ªé‡�定å�‘,并ä»�é‡�定å�‘的页é�¢è�·å�–å…ƒæ ‡è®°ï¼Œè€Œä¸�是第一页,这将使æ¤è§£å†³æ–¹æ¡ˆæ— 用。
抱æ‰è®©ä½ 看了这么多文å—ï¼�感谢您æ��供的任何建议。 编辑:我刚刚测试了我的提议解决方案,结合两种方法,我可以确认Facebook遵循重定向,所以这个解决方案根本不起作用。这很令人沮丧!
编辑编辑:实现我的“混合”想法的一种可能的方法是使用window.location重定向而不是PHP header()调用重定向,这样Facebook就可以从原始页面获取元标记,适用于那些有类似问题的人。
谢谢。