我正在创建一个Facebook墙(流)看起来像是放在我的网站上。 该组件将读取特定页面墙上的所有帖子,并通过图形api显示它们。 我还希望用户能够像“墙上”那样显示帖子。
到目前为止我所使用的是一个脚本,它使用图形api来获取帖子的JSON列表,我还有一个PHP文件,可以像在post_id查询字符串参数中提交ID的帖子一样,这个确实有效。我看到LIKE已提交。
要调用此PHP文件,我使用jQuery ajax:
function do_likes(post_id) {
$.ajax({
type: "POST",
url:"http://www.p-art.co.il/facebook_test/action.php?post_id=" + post_id
});
Firebug没有显示任何错误,但另一方面,LIKE未发布。 我一直在寻找几个小时,但我找不到正确的方法来调用PHP文件,以便FB.api调用工作。
提前谢谢你。 -Elad
答案 0 :(得分:0)
使用HTTP POST,数据通常从表单输入发送, enctype 设置为application/x-www-form-urlencoded
格式。因此,对于AJAX POST,我们通常也会以这种格式发送数据,而不是查询字符串参数,这是通常使用HTTP GET请求发送数据的方式以及如何发送上述数据。
如果您将代码更改为
function do_likes(post_id) {
$.ajax({
type: "POST",
url:"http://www.p-art.co.il/facebook_test/action.php",
data : { post_id : post_id }
});
}
它应该按预期工作(我不熟悉PHP,但我假设您发布的URL需要application/x-www-form-urlencoded
格式的数据)。使用jQuery.ajax()
,如果您将数据对象设置为要发送到服务器的键/值对,jQuery将根据您的HTTP请求类型为您提供正确的enctype
正在使用(如果需要,您可以覆盖enctype
,但通常这不是必需的,默认情况将是您在大多数情况下所需的内容。)
此外,您可能希望在AJAX帖子成功完成后设置要调用的回调函数。为此,请将success
属性添加到传递给$.ajax()
调用的对象。
答案 1 :(得分:0)
很难说没有看到你的action.php文件的源代码,但我猜它没有正确获取用户访问令牌,因为它是通过AJAX调用的。
如果您可以在某个地方发布您的action.php来源,我应该可以提供更多帮助