Facebook FQL Javascript набор результатов - PullRequest
1 голос
/ 25 ноября 2011

Я очень новичок в интеграции с Facebook и столкнулся со стеной, с которой, я надеюсь, кто-то может мне помочь. Я прочитал много статей и протестировал различные примеры кода, чтобы достичь того, что мне нужно, и я думаю, что самое близкое, что я могу получить, это FQL и JavaScript. Я вхожу именно в то, для чего собираюсь его использовать, но в основном мне нужно извлечь данные из таблицы Facebook и представить результаты в виде HTML-страницы.

У меня это работает при запросе одного элемента, когда что-то = к чему-то, единственный результат выводится на экран на моей html-странице, но когда я изменяю запрос так, чтобы он возвращал более одного результата, кажется, что код дает сбой без ошибок.

Вот пример запроса, который я пытаюсь получить в приведенном ниже примере кода JavaScript, но он возвращает ошибку JavaScript. Я знаю, что запрос хорош, потому что его можно проверить здесь.

Тестовая страница для запросов FQL SQL https://developers.facebook.com/docs/reference/rest/fql.query/

пример запроса ВЫБЕРИТЕ имя, pic_square, profile_url ОТ пользователя, ГДЕ содержит ('sam roberts')

Ошибка, когда вышеуказанный запрос отвечает на запрос в рабочем примере ниже.

SCRIPT1006: ожидается ")" facebook_2.html, строка 29, символ 95

Вот мой рабочий пример, который извлекает только одну строку данных, вы можете запустить это, но оно должно быть на веб-сервере. Если у вас есть какие-либо советы, пожалуйста, дайте мне знать, мне действительно нужно, чтобы они работали в JavaScript как это единственный язык, который у меня есть.

<html>
    <head>
      <title>My Facebook Login Page</title>
    </head>
    <body>
    <div id="msg"></div>
      <div id="fb-root"></div>
      <script>
        window.fbAsyncInit = function() {
          FB.init({
            appId      : '2xxxxxx',
            status     : true, 
            cookie     : true,
            xfbml      : true
          });
        };
        (function(d){
           var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
           js = d.createElement('script'); js.id = id; js.async = true;
           js.src = "//connect.facebook.net/en_US/all.js";
           d.getElementsByTagName('head')[0].appendChild(js);
         }(document));
      </script>

      <script>
        function doSomething()
        {
            FB.init({appId: '2xxxxxxxx', status: true, cookie: true, xfbml: true});
            var query = FB.Data.query('select name, uid from user where uid=742375122');
            query.wait(function(rows)
            {
             document.getElementById('msg').innerHTML = 'name is ' + rows[0].name;
            });

        }


      </script>



      <input type="button" value="Click here" onClick="doSomething()">
    </body>
 </html>

Спасибо за внимание.

1 Ответ

0 голосов
/ 29 ноября 2011

попробуйте использовать "SELECT name, pic_square, profile_url ОТ пользователя WHERE содержит ('sam roberts')" похоже на проблему с обрезкой строки.

<html>
    <head>
      <title>My Facebook Login Page</title>
    </head>
    <body>
    <div id="msg"></div>
      <div id="fb-root"></div>
      <script>
        window.fbAsyncInit = function() {
          FB.init({
            appId      : '283998891634567',
            status     : true, 
            cookie     : true,
            xfbml      : true
          });
        };
        (function(d){
           var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
           js = d.createElement('script'); js.id = id; js.async = true;
           js.src = "//connect.facebook.net/en_US/all.js";
           d.getElementsByTagName('head')[0].appendChild(js);
         }(document));
      </script>

      <script>
        function doSomething()
        {
            FB.init({appId: '283998891634567', status: true, cookie: true, xfbml: true});
            var query = FB.Data.query("SELECT name, pic_square, profile_url FROM user WHERE contains('sam roberts')");
            query.wait(function(rows)
            {
             document.getElementById('msg').innerHTML = 'name is ' + rows[0].name;
            });

        }


      </script>



      <input type="button" value="Click here" onClick="doSomething()">
    </body>
 </html>
...