скрипт выдает ошибку Параметр 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="<?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