Добавление Подключения Facebook к веб-сайту CodeIgniter

У меня есть проблемы при попытке подключить мой веб-сайт к Facebook. То, что я хотел бы, чтобы это сделало, позволяют пользователям увеличивать свои учетные записи путем соединения их с Facebook (мне не нужны люди, чтобы смочь войти в систему с Facebook, я использую OpenID вместо этого). Мой веб-сайт работает в платформе CodeIgniter.

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

Шаг 1: Настройте SDK JavaScript и XFBML

Сначала я добавляю ссылку на спецификацию FBML к моему тег:


Затем после моего тег, я добавляю:


Теперь здесь прибывает первая проблема, которую я имел, но теперь решил. Проблема состояла в том, что в документах для SDK JavaScript говорится что FB.init() метод требует appId в качестве параметра, но это оказалось неправильным. Я должен был передать свой apiKey вместо этого. Таким образом, это - код, с которым я закончил, который идет перед моим тег:

Теперь я могу добавить объекты XFBML к своим страницам, такой как который работает столь же ожидаемый. Я нажимаю его, и это открывается поле, спрашивающее, хочу ли я позволить моему веб-сайту получать доступ к своему профилю в Facebook. Я говорю да, и затем если я проверяю свои Параметры настройки приложения в Facebook, я вижу, что мой веб-сайт был добавлен.

Таким образом, этот шаг хорошо работает.

Шаг 2: Создайте библиотеку PHP

Хорошо, поэтому теперь я должен добавить библиотеку PHP. Таким образом, быстрый поиск Google 'codeigniter библиотека Facebook' показывает библиотеку Elliot Haughin. Я загружаю файлы, помещаю их всех в правильные места, затем взялись за работу над загрузкой библиотеки.

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

$this->load->library('facebook_connect');
$this->data['fb_user'] = $this->facebook_connect->user;
$this->data['fb_userid'] = $this->facebook_connect->user_id;

Но если я делаю print_r($this->data['fb_user']); Я ничего не получаю. Когда-либо. Зарегистрирован ли я в Facebook, вышел из системы, вошел в систему и добавил свой сайт к моему профилю, и т.д. и т.д. и т.д. Пользователь и user_id никогда не устанавливаются. Я не получаю ошибок все же.

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

Я попытался ввести по абсолютному адресу вокруг внутренней части источник библиотеки, но я действительно не могу получить голову вокруг этого. И я надеюсь, что фактическое решение для этого не включит взламывание библиотеки независимо. Я ожидал бы, что CodeIgniter определенная библиотека будет работать.

Какие-либо идеи?

Большое спасибо. :)

12
задан Community 23 May 2017 в 12:16
поделиться

4 ответа

Попробуйте эту библиотеку Facebook Дэнни Тран, размещенную на Github. Творит чудеса, и его довольно легко настроить.

2
ответ дан 2 December 2019 в 22:51
поделиться

Вы добавили xd_reciever файл в свой общедоступный каталог????

Вероятно, это может вызвать проблему, потому что xd_reciever деифировать канал между вашим приложением и facebook.

1
ответ дан 2 December 2019 в 22:51
поделиться

Этот пост может быть полезен для вас. Проверьте его.

1
ответ дан 2 December 2019 в 22:51
поделиться

Вы загружаете новый (http://connect.facebook.net/en_US/all.js) и старый (http://static.new.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php) JS SDK. Удалите ссылку на старый. Новый JS SDK будет устанавливать подписанный cookie, который может быть прочитан (безопасно) с помощью нового PHP SDK: http://github.com/facebook/php-sdk. Этот пример авторизации для JS SDK также может помочь: http://fbrell.com/auth/all-in-one

2
ответ дан 2 December 2019 в 22:51
поделиться
Другие вопросы по тегам:

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