APP на redirect_url показывает пустую страницу - PullRequest
0 голосов
/ 10 января 2012

У меня есть приложение Facebook PHP SDK на этапе разработки, и я застрял на чем-то ... Логика приложения такова:

сначала пользователю должна понравиться страница (приложение на этом) // работает очень хорошо :) после этого приходит запрос на разрешение, если разрешение предоставлено: переменная app_data пропускается, и пользователь получает изображение.

Переменная app_data необходима, потому что, если пользователь щелкает приложение после получения нового разрешения, оно автоматически получает новое изображение.с app_data нет.

У меня проблема с этой ссылкой:

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

<a href="<?php echo $facebook->getLoginUrl($params); ?>">Accept</a>

Если я нажму на нее, приложение отобразит пустую страницу, и ничего не происходит ... :( При прямом вызове это приложение работает без каких-либоошибка.

Может кто-нибудь мне помочь?

// простите за мой английский ...

Спасибо!

и весь index.phpis:

это весь index.php:

<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>
                    <style>
                        a:link    {color:#ffffff;}
                        a:visited {color:#ffffff;}
                        a:hover   {color:#ececec;}
                        a:active  {color:#1f1f1f;}
                        a:link    {text-decoration: none}
                    </style>
                    </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)) {


                        $file = "1.jpg";
                        $message = 'bla bla';

                        $ret_obj = $facebook->api('/me/photos', 'POST', array(
                                                                        'source' => '@' . $file,
                                                                        'message' => $message,
                                                                    )
                                                                );
                        echo "<img width=\"520px\" src=\"1.jpg\" />";
                    } else {
                    ?>
<a href="<?php echo $facebook->getLoginUrl($params); ?>">accept</a></td>
<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); echo '

1 Ответ

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

Я имел это раньше, когда углублялся в мир приложений Facebook.

То, что я в итоге сделал, было для моей redirect_uri Я использовал страницу в своем домене, например https://domain.com/facebook/redirect.php и в redirect.php у меня будет:

// user didn't give app permissions
if (isset($_GET['error_reason']))
{
    header( 'Location: http://www.facebook.com/FANPAGE' ) ;
}
else 
{
    header( 'Location: http://www.facebook.com/XXXXX?sk=app_YYYYYY' ) ;
}
...