Facebook php sdk: спрашивать разрешение по ссылке, не перенаправлять - PullRequest
0 голосов
/ 16 января 2012

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

Проблема в том, что каждый раз, когда пользователь нажимает на ссылку приложения, переменная $ user всегда ложна, но он входит в систему ...

<code><?php
require 'facebook.php';

$facebook = new Facebook(array(
'appId' => 'xxxxx',
'secret' => 'yyyyy',
'baseUrl' => 'http://hosting.address/',
'appBaseUrl' => 'http://apps.facebook.com/app-name/',
'fileUpload' => 'true',
));

// Get User ID
$user = $facebook->getUser();

$params = array(
  scope => 'publish_stream,user_photos',
  redirect_uri => 'http://www.facebook.com/xxxxx?sk=app_yyyyy&app_data=1'
    );

$signed_request = $facebook->getSignedRequest();
$app_data = $signed_request["app_data"];


?>
                    <!doctype html>
                    <html xmlns:fb="http://www.facebook.com/2008/fbml">
                    <head>
                    <title>the title</title>
                    </head>
                    <body>
<?php if ($user){

    try {
        $user_profile = $facebook->api('/me');
        $likes = $facebook->api("/me/likes/123123123"); //page ID

            if( !empty($likes['data']) ){

                $scope = 'publish_stream,user_photos';
                $scope_params = explode(',',$scope);

                $permissions = $facebook->api("/me/permissions");
                    if( array_key_exists('publish_stream', $permissions['data'][0]) &&  array_key_exists('user_photos', $permissions['data'][0]) && isset($app_data)) {


                    } else {

echo "<a href=\"/redirect.php\">accept</a></td>";
echo "<a href=\"http://www.facebook.com/pageurl\">deny</a></td>";

                    }
            }else{
                echo "<img width=\"520px\" src=\"no-fan.jpg\" />";
            }

    } catch (FacebookApiException $e) {
        echo '<pre>'.htmlspecialchars(print_r($e, true)).'
';$ user = null;}} if ($ user) {} else {$ loginUrl = $ facebook-> getLoginUrl ($ params);эхо

1 Ответ

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

Попробуйте следовать этому прекрасному примеру:

http://www.jelecos.com/default/blog/11-04-18/Facebook_PHP_SDK_Fangate_Creation.aspx

Тогда на fanpage.php укажите свой код, чтобы попросить их войти в систему.

...