我正在创建一个评论网站,其中一个功能是您可以从另一个网站上的网站获得显示您的5星(*)评级的API。
我想知道最好的方法是什么?
我想过只使用iframe,但这似乎不是最好的解决方案。
我希望通过javascript,比如facebook和twitter,任何想法来做到这一点?
答案 0 :(得分:2)
一些Facebook小部件确实使用iframe。 Twitter使用最有可能与其服务器上的Ajax脚本交互的JavaScript,并返回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传递变量,为您的用户提供设计和颜色方面的一些灵活性,就像您在此处所做的那样。
答案 1 :(得分:1)
您可以创建一个基于PHP的函数库或类,就像Facebook提供的那样。它们为开发人员提供了一个能够通过给定用户的凭证与Facebook服务器通信的类;并通过此拉取配置文件信息,图库,朋友列表等。它也通过Facebook服务器授权。你可以从那里获得很多灵感 - 甚至是源代码(它提供了,但我不确定它实际上是开源的)。当然,构建如此庞大的API来显示评级是没有必要的,但如果你想学习以“正确的方式”编写API,我会说这是一个寻找灵感的好地方。
https://developers.facebook.com/docs/reference/php/
另一件事是,您可以通过HTTP使用服务器端脚本或在加载常规网站后运行服务器端脚本的AJAX脚本来提取信息。您可能希望选择更晚的版本,因为提取HTTP信息会降低整个脚本的执行速度。
答案 2 :(得分:0)
使用动态图像会好一点。
//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');
显然,这个例子不是很安全,需要付出更多的努力,但它给你一个大概的想法...