Facebook应用程序:随机引号不会刷新每页加载

时间:2010-06-29 22:35:24

标签: facebook

我有一个用PHP编写的Facebook应用程序,它会在你的个人资料上显示随机引号。 该框似乎没有更新,它看起来像最初添加时一样。

我想更新每个页面加载(刷新)的配置文件框,而不是像点击链接那样的用户操作。

知道问题是什么以及如何解决?

3 个答案:

答案 0 :(得分:3)

这就是我为Office Quotes应用程序所做的:

  1. 将随机引用放在图像中(许多选项在PHP中执行此操作,我使用http://us2.php.net/manual/en/ref.image.php处的GD和图像函数创建包含引用的JPG。)
  2. 每次刷新时,在浏览器中访问此动态图像会为您提供不同的随机引用。
  3. 在Facebook个人资料框或标签上,只需链接此图片。
  4. 但是,Facebook会在第一次加载时缓存图像,因此它永远不会更新!
  5. 要强制Facebook更新,您必须使用现在通过网址http://api.facebook.com/methods/fbml.refreshImgSrc访问的API函数fbml.refreshImgSrc 更新Facebook的图片缓存以获取图片的网址,并要求access_token参数与所有其他API请求一样。 前段时间有人宣布此功能已被弃用,但决定已被撤销!
  6. 设置缓存刷新代码以定期运行。您可以在计划任务(即cron作业)或应用程序中的每个页面视图上执行此操作,或者您可以想到的任何其他方式将导致该方法以相对频率运行,用户将请求图像
  7. 我还将配置文件中的图片链接到应用中的页面,该页面将不断重新加载新的随机图像。用户通常会点击此页面(这将刷新每次加载时的图像缓存),他们会产生图像不断更新的错觉。
  8. 我更喜欢的另一个错觉是在配置文件框/选项卡中添加一个“刷新”链接,该链接链接到刷新图像缓存的脚本并立即返回到用户的配置文件,这样它实际上看起来就像是刷新配置文件框/选项卡。
  9. 享受!

答案 1 :(得分:1)

个人资料内容由Facebook缓存,并且不会在每次加载页面时连接到您的服务器。这一直都是这样的。没有javascript在加载/自动运行,因此您无法在页面加载时显示新报价。

你可以做的是在配置文件内容中放入一堆引号,然后使用fb:random标签在随机选项列表中显示页面加载时的随机引用。您可以定期运行脚本来更新用户配置文件中的引号集。如果引号不是每个用户唯一的,则应使用fb:ref句柄,这样您只需更新句柄内容,而不是每个用户的配置文件。只需将ref句柄放在用户的个人资料中即可。

答案 2 :(得分:1)

我很困惑。 Profiles boxes are all but gone。你现在不应该为个人资料框开发任何 - 无论如何它现在都会消失。

即使配置文件框仍然是建议的集成点,您也无法以您希望的方式更新它们。