Как заставить FQL работать?

#facebook #facebook-fql

#Facebook #facebook-fql

Вопрос:

Это вопрос новичка. Я не могу найти пример (в HTML), чтобы начать работу с Facebook FQL API.

Это то, что у меня есть на данный момент:

 <!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=216492851715113amp;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, но я уже изменил свой файл хоста, чтобы он соответствовал URL, который я предоставил Facebook.

Я предполагаю, что это проблема сеанса, потому что, если я изменил запрос на использование жестко закодированного идентификатора:

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

Это сработало бы.

Ответ №1:

Попробуйте это:http://api.facebook.com/method/fql.query ?запрос=ВЫБЕРИТЕ name, pic_small FROM user WHERE uid=696190859amp;format=JSON

или более конкретно:

запрос: ‘ВЫБЕРИТЕ name,pic_small FROM user WHERE uid=me()’

вам нужно убедиться, что URL-адрес закодирован. Смотрите здесь:http://www.blooberry.com/indexdot/html/topics/urlencoding.htm

Надеюсь, это сработает?

Комментарии:

1. Спасибо, я не могу заставить me () работать, хотя. Я использовал » api.facebook.com/method /… » и результатом является пустой JSON.

Ответ №2:

Вам нужно убедиться, что пользователь прошел аутентификацию в вашем приложении, вызвав FB.login() или подтвердите, что он уже прошел аутентификацию, вызвав FB.getLoginStatus(). В противном случае me () не будет существовать в том виде, в котором вы испытываете, потому что они не прошли аутентификацию.