高级 PHP 图像共享。从数据库到 Facebook 墙?
Posted
技术标签:
【中文标题】高级 PHP 图像共享。从数据库到 Facebook 墙?【英文标题】:Advanced PHP image sharing. From a DB to Facebook wall? 【发布时间】:2012-01-27 01:19:28 【问题描述】:我正在尝试通过直接使用我的数据库中的图像来集成 facebook 共享。
使用OG标签的静态图片:
<meta property="og:image" content="http://X.com/image.jpg" />"
工作正常。
但是,我的图像不是静态的,它们是从我的数据库中调用的:
echo "<img src=\"pic.php?id=".$id."\"/>";
图片在我的网站上渲染得很好,但 facebook 分享却没有显示出来。
那么我认为合乎逻辑的事情就是这样做:
echo "<meta property=\"og:image\" content=\"http://X.com/pic.php?id=".$id."\"/>";
很遗憾,这不起作用。
有什么想法吗?
【问题讨论】:
【参考方案1】:我建议你使用 URL 重写来创建一个友好的 URL,例如
http://x.com/pic/id
如果您使用的是 Apache,那将是一个 .htaccess
文件(假设您启用了 mod_rewrite
),类似于:
RewriteEngine on
RewriteRule ^pic/([^/\.]+)/?$ /pic.php?url=$1 [L]
【讨论】:
我尝试了您的解决方案:x.com/pic/id 显示正确的图像。但是,更改: echo "X.com/pic.php?id=".$id."\"/>"; 为: echo "X.com/pic/".$id."\"/>";不帮助 facebook 刮图像。使用调试工具,facebook 对原始 URL 或重写没有任何问题。元标记:X.com/pic/123" /> 我仍在寻找从数据库调用中抓取图像的解决方案。【参考方案2】:我使用 asp 时遇到同样的问题 通过 asp 脚本从 mysql blob 字段中检索图像。 调试器显示图像并且没有给出错误,但页面上的按钮不获取图像。 它应该与缓存无关,因为它是一个全新的页面。
页面:http://www.ffkama.be/html/2_agenda_detail.asp?ps=id51
图片网址:http://www.ffkama.be/root/imager_ag.asp?id=51
更新:我忘记了 HEAD TAG 中的代码 :( 可以肯定的是,没有 'prefix="og: ht tp://ogp.me/ns# fb: ht tp://ogp.me/ ns/fb# 网站:ht tp://ogp.me/ns/website#"' 在 HEAD 标记中,调试器不会给出错误,并且图像显示在调试器中,但图像不会显示在您的页面上。然后页面被缓存,只有两种解决方案:1.重命名页面2.等待几天缓存过期
【讨论】:
您无需等待几天。只需使用 facebook 调试器工具查看 facebook 在您的页面上看到的内容:developers.facebook.com/tools/debug以上是关于高级 PHP 图像共享。从数据库到 Facebook 墙?的主要内容,如果未能解决你的问题,请参考以下文章