Как я получаю require_login () - как функциональность, пользующаяся новой Клиентской Библиотекой PHP для Facebook?

Привет. Для меня определили задачу с созданием игры Facebook, но я плохо знаком с разработкой Facebook, таким образом, я просто начинаю. Извинения заранее, если это - легкая задача людям.

Я испытываю затруднения после всех примеров, которые я вижу на сайтах, и я продолжаю сталкиваться с недостающими страницами в документации Facebook, когда я пытаюсь читать. Я думаю, что это - потому что существует новая версия Клиентской Библиотеки PHP для Facebook и всего, что я нахожу, относится к старому клиенту.

Например, я вижу этот код в большом количестве примеров:

require 'facebook.php';
$facebook = new Facebook( array( 'appId' => '(id)', 'secret' => '(secret)' ) );
$facebook_account = $facebook->require_login();

... но существует не "require_login ()" в клиентской библиотеке, обеспеченной в facebook.php файле.

Из того, что я могу сказать, похоже, что Facebook совсем недавно развернул некоторую новую систему для разработки, но я не вижу примера кода где угодно для контакта с ним. Новая библиотека идет с "example.php" файлом, но это, кажется, только для добавления, "Входят в систему с Facebook" функциональность на другие сайты (что я принимаю, то, что они подразумевают "под сайтами" Подключения Facebook), не для просто запущенных приложений на странице Canvas в самом Facebook.

А именно, что я должен сделать, позволяют пользователям посетить страницу приложения в рамках Facebook, иметь его, поднимают диалоговое окно, позволяющее им авторизовать приложение, иметь его, обнаруживаются на их "игровой" странице и затем имеют его, передают меня соответствующая информация о пользователе, таким образом, я могу начать создавать игру. Но я, может казаться, не нахожу учебных руководств или примеров, которые показывают, как сделать это пользующееся новой библиотекой. Кажется, что это должно быть довольно просто, но я сталкиваюсь с контрольно-пропускными пунктами.

Или я пропускаю что-то о клиентской библиотеке PHP? Должен require_login () работать на меня, и существует что-то порванное моя реализация, такая как наличие неправильной клиентской библиотеки или чего-то? Я вчера загрузил с GitHub, таким образом, я вполне уверен, у меня есть новая версия кода, который я имею, но возможно я загружаю несправедливость "facebook.php" файл...?

5
задан hakre 19 December 2012 в 01:04
поделиться

4 ответа

Ниже представлена ​​перезапись старой функции require_login . Он в точности дублирует старый функционал.

function facebook_require_login($required_permissions = '')
{
  global $facebook; // NOTE GLOBAL FACEBOOK OBJECT, MUST ALREADY BE INSTANTIATED

  $user = $facebook->get_loggedin_user();
  $has_permissions = true;

  if ($required_permissions) {
    $facebook->require_frame();
    $permissions = array_map('trim', explode(',', $required_permissions));
    foreach ($permissions as $permission) {
      if (!in_array($permission, $facebook->ext_perms)) {
        $has_permissions = false;
        break;
      }
    }
  }

  if ($user && $has_permissions) return $user;

  $facebook->redirect(
    $facebook->get_login_url(Facebook::current_url(), $facebook->in_frame(),
                         $required_permissions));
}
4
ответ дан 14 December 2019 в 19:06
поделиться

Новый скрипт php на git hub - это оболочка для api facebooks, я полагаю, график, но я тоже видел код для fql, так что кто знает. Форумы в настоящее время не работают, и IRC был мертв, когда я перешел. Я искал то же решение, что и вам требуется авторизация для вызова -> api (\ me). Поскольку сценарий расширяет другой класс, если я правильно помню, вы можете попробовать использовать класс / функцию отражения, чтобы узнать, какие методы доступны. Надеюсь, в ближайшее время появится надежная документация! Пожалуйста, дайте мне знать, если вы решите эту проблему. (Извините за плохое форматирование, я использую свой мобильный)

0
ответ дан 14 December 2019 в 19:06
поделиться

Что ж, я смог найти решение проблемы авторизации приложений с помощью нового PHP SDK. Вы можете проверить мое сообщение в блоге здесь .

Короче говоря, вам нужно будет получить сеанс с аутентификацией, а затем вы сможете вызвать функции для получения идентификатора вошедшего в систему пользователя. В этом случае вы вызовете путь «/ me» из Graph API.

0
ответ дан 14 December 2019 в 19:06
поделиться

Решение phpfour является единственно правильным, поскольку оно использует новую библиотеку php-sdk из github.

Лучшее решение - отредактировать новый facebook.php и добавить функцию require_login () (чтобы все существующие страницы, использующие ее, могли остаться прежними)

public function require_login(){
  if ( !$this->getSession() ) {
    $url = $this->getLoginUrl( array(
       'canvas' => 1,
       'fbconnect' => 0
     ));
    echo "<script type='text/javascript'>top.location.href = '$url';</script>";
  }
 else
  return $this->getUser();
}
1
ответ дан 14 December 2019 в 19:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: