如何让FQL工作?

时间:2011-06-09 21:20:29

标签: facebook facebook-fql

这是一个新手问题。我无法找到开始使用Facebook的FQL API的示例(用HTML格式)。

这就是我目前的情况:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
    <title></title>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.1.min.js"></script>
    <script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script>
    <script src="http://connect.facebook.net/en_US/all.js#appId=216492851715113&amp;xfbml=1"></script>
</head>
<body>

<div id="fb-root"></div>
<script>
    FB.init({
        appId: '216492851******',
        status: true, // check login status
        cookie: true, // enable cookies to allow the server to access the session
        xfbml: true  // parse XFBML
    });
</script>

<script>
    FB.api(
    {
        method: 'fql.query',
        query: 'SELECT name, pic_small FROM user WHERE uid=me()'
    },
    function (response) {
        alert('Name is ' + response[0].name);
    }
);
</script>
</body>
</html>

我希望看到我的名字显示在警报中(因为我登录了Facebook)。

起初我觉得它没有用,因为我使用的是localhost,但我已经修改了我的Host文件以匹配我提供给Facebook的URL。

我猜这是会话问题,因为如果我将查询更改为使用硬编码ID:

'SELECT name, pic_small FROM user WHERE uid=696190859'

它会起作用。

2 个答案:

答案 0 :(得分:0)

试试这个: http://api.facebook.com/method/fql.query?query=SELECT%20name,%20pic_small%20FROM%20user%20WHERE%20uid=696190859&format=JSON

或更具体地说:

  

查询:'SELECT%20name,pic_small%20FROM%20user%20WHERE%20uid = me()'

您需要确保网址已编码。看这里: http://www.blooberry.com/indexdot/html/topics/urlencoding.htm

希望这有效吗?

答案 1 :(得分:0)

您需要通过调用FB.login()来确保用户已通过您的应用程序进行了身份验证,或通过调用FB.getLoginStatus()验证他们是否已经过身份验证。否则,me()将不会像您遇到的那样存在,因为它们尚未经过身份验证。