Определите, нравится ли пользователю (фанат) страница Facebook во Flash - PullRequest
0 голосов
/ 03 июня 2011

Есть ли способ для приложения Flash Facebook в iFrame определить, является ли пользователь фанатом страницы, используя Graph API для Actionscript 3? Если нет, могу ли я достичь той же цели, используя Javascript? без запроса разрешения пользователя (токен доступа не требуется).

Ответы [ 2 ]

0 голосов
/ 28 июня 2011

Наконец-то нашел решение.На странице с приложением Facebook добавьте:

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

list($encoded_sig, $payload) = explode('.', $signed_request, 2);
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
$liked = isset($data["page"]["liked"]) ? $data["page"]["liked"] : '';
?>

$iled = true, если зарегистрированному пользователю нравится страница, в противном случае - false.

0 голосов
/ 03 июня 2011

Это может быть довольно сложно, но я недавно нашел решение, которое работает для меня. Возможно, вы захотите использовать JS-вызов (который вы можете вызывать / получать данные с помощью ExternalInterface во флеш-памяти). В вашем JS у вас будет что-то вроде этого:

//me() gets replaced by the current viewer's uid
var fan_qr = 'SELECT source_id FROM connection WHERE target_id = YOUR_APP_ID AND source_id = me()';  

var fan_query = FB.Data.query(fan_qr);
fan_query.wait(function(rows) {

    if(rows[0] && rows[0]['source_id'] != "") {
        //they're a fan
    } else {
        //they're not a fan
    }
}

Я забыл, где я нашел это первоначально, но подпираю этого парня для выяснения этого.

Поскольку вы получаете данные только о текущем пользователе, вам не нужен токен доступа. Я знаю, что FB только что повысил безопасность вызовов FQL, поэтому, если вам в конечном итоге понадобится токен доступа, вот как вы его получите:

FB.getLoginStatus(function(response) {
    if(response.session) {
        //hang on to this for later use
        window.accessToken = response.session.access_token;
    }
});

Тогда я видел людей, добавляющих его непосредственно в конец запроса, например:

var fan_qr = 'SELECT source_id FROM connection WHERE target_id = YOUR_APP_ID AND source_id = me()&access_token=' + window.accessToken; 

Если это не сработает, вы можете выполнить запрос с помощью FB.api () и просто передать access_token в качестве дополнительного аргумента.

В любом случае, надеюсь, это поможет. Удачи с этим!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...