скриптът дава грешка. Параметърът app_id се изисква при влизане във facebook, дори когато се предава в кода

Разработих уебсайт, в който искам да включа бутона „влезте с facebook“. кодирах необходимата част и също така направих приложението за facebook за нея..в моя код дори предадох идентификатора на приложението и секретния ключ. Дори след като го направя, когато натисна бутона за влизане през facebook, ми дава грешка „Необходим е параметърът app_id“. това е моят скрипт за влизане

    <?php 
            include 'fbaccess.php'
            if(empty($user))
            {
            ?>
            <form name="fblogin" action="<?php echo $loginUrl;?>">
            <input type="submit" name="fbsubmit" value="Login with Facebook"/>
            </form>
            <?php                   
            } 
            else {
                echo $user_info;
            }
            ?>

и това е моят fbaccess.php код

    <?php
     $app_id        = APP_ID;
     $app_secret    = APP_SECRET;
     $site_url  = "www.jajabora.com/index.php";

     include_once "src/facebook.php";

     //creating the object of facebook from the API
     $facebook = new Facebook(array(
 'appId'        => $app_id,
 'secret'   => $app_secret,
  ));

      //getting the user id to check whether the user is logged in or not
       $user = $facebook->getUser();

      //if user is not authenticated api/me will throw an exception, hence we will know                he isnt logged in after logging out
      /*checks if the user is logged in or not*/if($user){
      // Single query method 
  try{
    // Proceed knowing you have a logged in user who's authenticated.
    $user_profile = $facebook->api('/me');
   }/*if exception the user has logged out after logging in hence not authenticated*/
  catch(FacebookApiException $e){
    error_log($e);
    $user = NULL;
  }
      // Single query method ends 
      }
       if($user){
  // Get logout URL
  $logoutUrl = $facebook->getLogoutUrl();
      }else{
  // Get login URL
  $loginUrl = $facebook->getLoginUrl(array(
    'scope' => 'publish_stream, user_birthday,user_location,email,first_name,last_name,gender',
    ));
       }
      if($user){
  // Proceed knowing you have a logged in user who has a valid session.

      //========= Batch requests over the Facebook Graph API using the PHP-SDK ========
  // Save your method calls into an array
  $queries = array(
    array('method' => 'GET', 'relative_url' => '/'.$user)/*,
    array('method' => 'GET', 'relative_url' => '/'.$user.'/home?limit=50'),
    array('method' => 'GET', 'relative_url' => '/'.$user.'/friends'),
    array('method' => 'GET', 'relative_url' => '/'.$user.'/photos?limit=6'),*/
    );

   // POST your queries to the batch endpoint on the graph.
   try{
    $batchResponse = $facebook->api('?batch='.json_encode($queries), 'POST');
     }catch(Exception $o){
    error_log($o);
      }

    //Return values are indexed in order of the original array, content is in   ['body'] as a JSON
   //string. Decode for use as a PHP array.
    $user_info      = json_decode($batchResponse[0]['body'], TRUE);
    $feed           = json_decode($batchResponse[1]['body'], TRUE);
    /*$friends_list     = json_decode($batchResponse[2]['body'], TRUE);
    $photos         = json_decode($batchResponse[3]['body'], TRUE);*/
        //========= Batch requests over the Facebook Graph API using the PHP-SDK ends =====

       try {
   $publishStream = $facebook->api("/$user/feed", 'post', array(
    'message'       => 'Check out jajabora.com',
    'link'          => 'http://jajabora.com'/*,
    'picture'       => 'http://25labs.com/images/25-labs-160-160.jpg'*/,
    'name'          => 'Jajabora',
    'caption'       => 'jajabora.com',
    'description'       => 'A carpooling website. highly recommended to  save fuel and cost of travel',
    ));
           }catch(FacebookApiException $e){
         error_log($e);
               }
                }
              ?>

Моля, насочете ме. Аз съм начинаещ в кодирането за влизане във Facebook


person The-Rohan D. Shah    schedule 28.03.2013    source източник


Отговори (1)


Подозирам, че проблемът може да се крие тук:

<form name="fblogin" action="<?php echo $loginUrl;?>">
        <input type="submit" name="fbsubmit" value="Login with Facebook"/>
</form>

Изпращате заявка за получаване към генерираната връзка, защо? Потребителят трябва да следва тази връзка и да даде разрешения на вашето приложение, опитайте нещо подобно вместо формата:

<a href="/bg<?php echo $loginUrl?>">Login with Facebook </a>

За да пренасочите потребителя към определена страница, добавете redirect_uri към getLoginUrl:

$loginUrl = $facebook->getLoginUrl(array(
'scope' => 'publish_stream, user_birthday,user_location,email,first_name,last_name,gender',
redirect_uri => PAGE_URL
));

Уверете се, че тази страница принадлежи към домейна, който сте задали в настройките на приложението.

person Darvex    schedule 28.03.2013
comment
вашето решение дава тази грешка - URL адресът redirect_uri трябва да е абсолютен. също така ме уведомете, че приложението изисква ли да бъде прегледано от хора от facebook, преди да започне да работи? - person The-Rohan D. Shah; 28.03.2013
comment
Не, никой не преглежда приложението ви. Ако redirect_uri е грешен, трябва да разгледате настройката на приложението във Facebook или да добавите параметър redirect_url във вашия getLoginUrl (след обхват), с пълен url към вашата страница) - person Darvex; 28.03.2013
comment
всъщност не съм сигурен къде да поставя какъв код...на страницата за вход имам бутон, който пренасочва към loginUrl, който е зададен на URL адреса на моя сайт. сега не знам кой url да присвоя на mysiteurl. също така кой url да зададете в приложението? тази на страницата за вход или тази след успешно влизане - person The-Rohan D. Shah; 28.03.2013
comment
Е, това зависи от вас. Познавате работния процес на вашата страница, така че трябва да опитате и да видите коя опция работи най-добре за вас - person Darvex; 28.03.2013
comment
има ли проблем с oauth? защото не съм го включил в моя код - person The-Rohan D. Shah; 28.03.2013
comment
oauth авторизацията е това, през което преминава потребителят, когато дава на приложението ви разрешение да използва неговите данни, което ще доведе до това, че приложението ви ще получи определено означение за достъп, за да работи с данните на този потребител. - person Darvex; 28.03.2013
comment
да, така е, знам работния поток на моята страница...но не знам кой URL да поставя къде..това е, което искам да направя..при влизане (x.php) искам влизане с facebook..при кликване трябва да ме отведе до y.php, след като потребителят приеме всички условия.. сега ми кажете къде да поставя какво? - person The-Rohan D. Shah; 28.03.2013
comment
Редактирана публикация, вашият y.php трябва да е в PAGE_URL - person Darvex; 28.03.2013
comment
така е.. все още ми дава същата грешка - URL адресът redirect_uri трябва да е абсолютен ... ето как дадох URL адреса на сайта (приемайки, че под url на страницата имате предвид url на сайта)=www.websitename.com/y .php ... моля, помогнете ми.. наистина съм на ръба на срива - person The-Rohan D. Shah; 28.03.2013
comment
уф, най-после пробив... много благодаря... не знаете каква услуга сте направили... изключително благодарен. Сега стигнахме до нов проблем. не мога да публикувам статус (последния код във файла fbaccess.php). той генерира масив от изключения - person The-Rohan D. Shah; 28.03.2013
comment
всяка грешка е разрешена..благодарен съм ви...а сега, моля, можете ли да ми кажете какво да правя, когато потребителят натисне излизане от моя уебсайт? - person The-Rohan D. Shah; 28.03.2013
comment
когато изляза, ме отвежда до началната ми страница във facebook, а освен това приложението не публикува нищо като статус на потребителя, въпреки че е програмирано да го прави...какво да правя? - person The-Rohan D. Shah; 28.03.2013
comment
Със сигурност можете да направите url за пренасочване и за излизане. Що се отнася до статуса на публикуване, това е друг въпрос, така че ви предлагам да създадете нов с цялата информация относно него. - person Darvex; 28.03.2013