我正在创建一个评论网站,其中一个功能是您可以从另一个站点上的站点获得显示您的5星(*)评级的API。
我想知道做这件事最好的方法是什么?
我想过只使用iframe,但这似乎不是最好的解决方案。
我希望通过javascript像facebook和twitter这样做,有什么想法吗?
发布于 2012-01-11 03:30:52
一些Facebook小部件确实使用了iframe。Twitter使用javascript,它最有可能与服务器上的Ajax脚本交互,并将HTML代码返回到HTML元素,该元素是其小部件嵌入代码的一部分。无论哪种方式都行得通。
基于Javascript和PHP (无Ajax)的示例:
嵌入代码
<script type="text/javascript">
width = 527;
height = 95;
</script>
<script type="text/javascript" src="http://www.mysite.com/widget.js"></script>widget.js
document.write('<iframe scrolling="no" frameborder="0" width="' + width + '" height="' + height + '" src="http://www.mysite.com/showdata.php?height=' + height + '&width=' + width + '" style="border: 1px solid #6c82b5;"></iframe>');showdata.php可以是你想要显示任何数据的任何PHP脚本。您可以像我在这里所做的那样,通过javascript传递变量,从而在设计和颜色方面为用户提供一定的灵活性。
发布于 2012-01-11 03:24:50
您可以创建一个基于PHP的函数库或类,就像Facebook提供的那样。它们为开发人员提供了一个类,能够通过给定用户的凭据与Facebook服务器通信;并通过此拉取个人资料信息、图库、好友列表等。它也是通过Facebook服务器进行授权的。你可能会从那里得到很多灵感-甚至是源代码(它是提供的,但我不确定它是否真的是开源的)。当然,构建如此庞大的API来显示评级并不是必要的,但如果你想学习以“正确的方式”编写API,我想说这是一个寻找灵感的好地方。
https://developers.facebook.com/docs/reference/php/
另一件事是,您可以通过HTTP拉取信息,既可以使用服务器端脚本,也可以使用在加载一般网站后运行服务器端脚本的AJAX脚本。您可能希望选择后者,因为提取HTTP信息会减慢整个脚本的执行速度。
发布于 2012-01-11 03:25:53
使用动态图像会更好一些。
//Url would be something like: http://mysite/api/userrating.php?id=userchecked
$user = mysql_fetch_assoc(mysql_query('SELECT * FROM users WHERE username = "'.mysql_real_escape_string($_GET['id']).'"'));
//Return a header to the caller that points towards the right 5 star image
header('location: http://mysite/api/userrating'.$user['rating'].'.jpg');显然,这个例子不是很安全,需要付出更多的努力,但它给了你一个大致的概念……
https://stackoverflow.com/questions/8809023
复制相似问题