Как определить, нравится ли пользователю Facebook определенная страница - PullRequest
5 голосов
/ 16 января 2011

Есть ли способ определить, «нравится» ли пользователю Facebook определенная страница с помощью API, предлагаемого в настоящее время Facebook?

ОБНОВЛЕНИЕ

Я пытался заставить это работать черезНекоторое время PHP API для API с этим кодом.

<code>$fbconfig['appid'] = '***';
$fbconfig['api'] = '***';
$fbconfig['secret'] = '***';

try {
    include_once "facebook.php";
} catch(Exception $o) {
    echo '<pre>';
    print_r($o);
    echo '
';} $ facebook = новый Facebook (массив ('appId' => $ fbconfig ['appid'], 'secret' => $ fbconfig ['secret'], 'cookie' => true,));$ session = $ facebook-> getSession ();$ me = null;if ($ session) {try {$ uid = $ facebook-> getUser ();$ me = $ facebook-> api ('/ me');} catch (FacebookApiException $ e) {d ($ e);}} if ($ me) {try {$ likes = $ facebook-> api ('/ me / likes');} catch (Исключение $ o) {d ($ o);}}

Однако сеанс всегда нулевой, даже если я вошел в систему.

Видимо , приведенный выше код подходит только для Facebook Connect "Canvas "приложения, я вызываю этот код с вкладки FBML на" Странице "Facebook через AJAX-вызов на мой сервер.

Я не очень знаком со всей терминологией разработки Facebook.

Как я могу получить лайки текущего пользователя в моей ситуации?

Ответы [ 4 ]

11 голосов
/ 23 февраля 2011

Есть способ сделать это без запроса разрешения и без использования какого-либо API.

Если у вас PHP:

<?php
$signed_request = $_REQUEST["signed_request"];

list($encoded_sig, $payload) = explode('.', $signed_request, 2);

$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);

$app_data = isset($data["app_data"]) ? $data["app_data"] : '';
$_REQUEST["fb_page_id"] = $data["page"]["id"];
$access_admin = $data["page"]["admin"] == 1;
$has_liked = $data["page"]["liked"] == 1;
?>

Вы можете использовать $ has_liked, чтобы обернуть свой фан-конкретный контент

<?php if($has_liked) : ?>
fan-specifc
<?php else : ?>
for non-fans only
<?php endif; ?>

заменяет

<fb:visible-to-connection>
fan-specific content
<fb:else>
for non-fans only
</fb:else>
</fb:visible-to-connection>

Это очень полезно и удобно, так как запрос разрешения является отключением.

2 голосов
/ 16 января 2011

Если вы используете API графа, то в ленте есть объект лайков, который содержит Id пользователей, которым нравится этот конкретный элемент записи / фида.

Также вы можете запускать запрос, используя api FQL.1003 *

0 голосов
/ 17 января 2011

Чтобы получить лайки пользователя, вам нужно разрешение user_likes.
Просто добавьте разрешение к атрибуту fb:login-button perms, и при следующем входе пользователя в систему ему будет предложено предоставить вашему приложению доступ к новому разрешению.

0 голосов
/ 16 января 2011

Попробуйте использовать FQL.Проверьте эту страницу, она позволяет вам тестировать FQL-вызовы.http://developers.facebook.com/docs/reference/rest/fql.query

ВЫБЕРИТЕ user_id ОТ, например, WHERE object_id = "fb_id"

, но замените fb_id идентификатором объекта, который вы хотите знать, сколько людей нравится.

...