Контент не фанат контента фанат - PullRequest
0 голосов
/ 16 сентября 2011

Я хотел бы изменить содержимое моей страницы, когда пользователь нажимает кнопку «Мне нравится» (это непосредственно перезагружает страницу с новым содержанием).

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

Пример того, что я хочу, это https://www.facebook.com/Dior (вкладка Dior VIII).

Ответы [ 4 ]

0 голосов
/ 19 декабря 2011

Страница получает подписанный запрос. Расшифруйте это, чтобы узнать, нравится ли пользователю страница. В PHP:

<?php
    $signedRequestObject = parse_signed_request( $_POST["signed_request"],YOUR_APPLICATION_SECRET );

    if ($signedRequestObject["page"]){
        // This means this signed_request was generated on a page.
        if ($signedRequestObject["page"]["liked"]){
            // the page was liked
        }
    }

    //Used functions
    function parse_signed_request($signed_request, $secret) {
        list($encoded_sig, $payload) = explode('.', $signed_request, 2);
        $sig = $this->base64_url_decode($encoded_sig);
        $data = json_decode($this->base64_url_decode($payload), true);
        if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
            echo  'Unknown algorithm. Expected HMAC-SHA256 : ';
            return false;
        }
        $expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
        if ($sig !== $expected_sig) {
            echo = 'Bad Signed JSON signature!';
            return false;
        }
        return $data;
    }

    function base64_url_decode($input) {
        return base64_decode(strtr($input, '-_', '+/'));
    }
?>
0 голосов
/ 16 сентября 2011

Вам потребуется реализовать подпрограмму, используя один из SDK.Facebook передает так называемый подписанный запрос всем приложениям Canvas и тому подобное, работающим в iframe.Помимо прочего, он включает информацию о том, понравился ли текущий пользователь этой странице.Вам нужно получить информацию и проверить статус «как».

Для PHP это будет примерно так:

0 голосов
/ 17 сентября 2011

Существует гораздо более простой способ сделать это, используя FB.Event.Subscribe и edge.create .Код JavaScript находится в http://fivespot.me/like-reveal-simple.txt.

Добавьте это на свою целевую страницу, измените идентификатор приложения и ссылку, на которую вы хотите перенаправить, после того, как пользователю нравится, где он говорит yoursite.com/afterlike.html.

Это самый простой и эффективный способ сделать это.

0 голосов
/ 16 сентября 2011

Существует метод с именем getSignedRequest().Назовите этот метод.Этот метод возвращает, если текущий пользователь уже является поклонником страницы Facebook или нет:

 $faceboook->getSignedRequest()
...