graph.facebook获取名称&链接并发送到数据库

时间:2013-10-12 10:07:31

标签: javascript json facebook-graph-api

从帖子到用户墙的response_id我删除了user_id:

var userid = (response.post_id);
userid = userid.substring(0, userid.indexOf('_'));

确定。接下来我打电话给facebook图:

$.getJSON('http://graph.facebook.com/' + userid + '?callback=?',function(data){
var name = data["name"];
var fblink = data["link"];
})

现在我尝试将数据保存在数据库中。所以我做了以下事情:

$.post('<?php echo $siteurl; ?>write.php?fbusr_id=' + userid + '&fb_name=' + name + '&fb_link=' + fblink);

问题:如果我只发送fbusr_id但它不能用于fb_name&amp;代码中的fb_link。什么都没有写入数据库。如果我削减fb_name&amp; fb_link在它工作的$ .post之外,user_id被写入数据库。 这有效:

$.post('<?php echo $siteurl; ?>write.php?fbusr_id=' + userid);

找不到原因。求助。

尼尔

1 个答案:

答案 0 :(得分:0)

第一个原因,getJSON是异步方法,你应该在它们的响应函数中使用响应数据。

第二个原因,POST方法应该将数据作为对象而不是字符串参数发送。

Thrid原因,如果你真的想将数据作为查询字符串参数发送(也许是通过GET方法发送),你应该使用encodeURIComponent(fblink)而不是fblink或你要发送的东西。 但是,您可以试试这个

$.getJSON('http://graph.facebook.com/' + userid + '?callback=?',function(data){
        var name = data["name"];
        var fblink = data["link"];
        $.post('<?php echo $siteurl; ?>write.php', {fbusr_id:userid,fb_name:name,fb_link:fblink},
                 function(response){} );
})