2011-01-27 2 views
0

Я разрабатываю приложение facebook, используя javascript sdk, который извлекает конкретные настенные сообщения и позволяет пользователям любить или отличать их. Чтобы выполнить эту функцию, мне нужно знать, нравится ли пользователю каждое сообщение. Какой был бы лучший способ определить это? Я думал о том, чтобы извлечь все понравившиеся сообщения для конкретного сообщения, итерации через идентификаторы и тестирование каждого из них по идентификатору пользователя, но это не похоже на эффективное решение. Любые лучшие идеи? Заранее спасибо.Определение того, нравится ли Facebook пользователю определенное сообщение - Javascript

ответ

0

Возможно, вы можете получить его в форме на массиве json. , то проверьте, понравился ли ваш пользователь или нет. Я не думаю, что другой Theres пути, но позволяет ждать опытных пользователей, чтобы ответить на этот вопрос;) http://developers.facebook.com/docs/reference/api/post/

Here

0

Рассмотрите возможность использования FQL для этого вопроса. Вы можете использовать таблицу like (docs), чтобы получить список пользователей, которым понравилось сообщение. Имея этот список, вы можете проверить, имеет ли ваш пользователь IN этот список.

Вы извлекаете этот список только один раз, а затем проверяете свой идентификатор (или идентификаторы).

Пример в JavaScript:

<script src="http://connect.facebook.net/en_US/all.js"></script> 
<script type="text/javascript"> 
FB.api({ 
     method: 'fql.query', 
     query: 'SELECT user_id FROM like WHERE object_id=193397964020317' 
    }, 
    function(response) { 
     var results = []; 
     for (var i = 0; i < response.length; i++) { 
      results.push(response[i].user_id); 
     } 

     if (results.indexOf("725047048") != -1) { 
      // exists 
     } else { 
      // doesnt exists 
     } 
    } 
); 
</script> 

Я приведу пример в PHP тоже, возможно, кому-то это нужно:

$results = json_decode(file_get_contents("https://api.facebook.com/method/fql.query?query=".urlencode("SELECT user_id FROM like WHERE object_id='193397964020317'")."&format=json")); 
if ($results) { 
    $user_ids = array(); 
    foreach ($results as $result) { 
     $user_ids[] = $result->user_id; 
    } 
} 
var_dump($user_ids); 
if (in_array(CURRENT_USER_ID, $user_ids)) { 
    // exists 
} else { 
    // does not exists 
} 

Удачи!

1

До тех пор, как вы знаете, user_id и post_id это простая задача:

FB.api({ 
    method: 'fql.query', 
    query: 'SELECT object_id FROM like WHERE post_id="post_id" AND user_id=me()' 
    }, 
    function(response) { 
    if(response.length) { 
     // the user likes the post! 
    } 
    } 
); 

Таблица используется: like

Смежные вопросы