Добавление Facebook Connect на сайт CodeIgniter - PullRequest
12 голосов
/ 28 июня 2010

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

Я удалю все, что я пробовал, и проведу вас по шагам вверх, пока он не перестанет работать.

Шаг 1:Установите JavaScript SDK и XFBML

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

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xml:lang="en" lang="en">

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

<script src="http://static.new.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php" type="text/javascript"></script>

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

<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
    FB.init({
        apiKey  : '<?php echo $this->config->item('facebook_api_key'); ?>',
        status : true,
        cookie : true,
        xfbml  : true
    });

</script>

Теперь я могу добавлять XFBML-сущности на мои страницы, такие как <fb:login-button></fb:login-button>, который работает так, как ожидалось.Я щелкаю по нему, и появляется окно с вопросом, хочу ли я разрешить моему веб-сайту доступ к моему профилю в Facebook.Я говорю «да», а затем, если я проверяю настройки приложения в Facebook, я вижу, что мой веб-сайт был добавлен.

Так что этот шаг работает нормально.

Шаг 2: Установитедо библиотеки PHP

Хорошо, теперь мне нужно добавить библиотеку PHP.Таким образом, быстрый поиск в Google по «codeigniter facebook library» показывает библиотеку Эллиота Хогена .Я загружаю файлы, помещаю их в нужные места, затем приступаю к загрузке библиотеки.

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

$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 и user_id никогда не устанавливаются.Хотя я не получаю никаких ошибок.

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

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

Есть идеи?

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

Ответы [ 5 ]

2 голосов
/ 29 декабря 2011

Эти ссылки могут решить любые ваши проблемы программирования на Facebook.

http://developers.facebook.com/docs/authentication/

http://net.tutsplus.com/tutorials/php/how-to-authenticate-your-users-with-facebook-connect/

http://realfoot.com/facebook_connect/login_page.php

Кнопка входа в Facebook: можно ли предотвратить автоматическую перезагрузку страницы после входа в систему?

Codeignitor, JavaScript javascript SDK, PHP SDK Перенаправление после входа в Facebook не получает getUser () до обновления

http://www.braintilt.com/fbcookies.php

http://www.permadi.com/blog/2011/02/facebook-authenticationlogin-process-in-popup-or-not/

http://developers.facebook.com/docs/reference/javascript/FB.login/

http://ottopress.com/wordpress-plugins/simple-facebook-connect/

http://devtacular.com/articles/bkonrad/how-to-integrate-with-facebook-connect/

http://developers.facebook.com/docs/guides/web/

http://www.1stwebdesigner.com/tutorials/facebook-integrate/

http://worldpointx.com/2009/05/authentication-rot/

https://github.com/facebook/php-sdk/

http://www.justin -klein.com / проекты / сор-фб-автосоединение

http://en.kioskea.net/forum/affich-12130-problems-connecting-to-facebook

http://en.kioskea.net/s/Cannot+login+on+website+using+facebook+login

http://www.google.com/support/forum/p/Chrome/thread?tid=310bc994b12d2750&hl=en http://www.google.com/support/forum/p/Chrome/thread?tid=310bc994b12d2750&hl=en

http://moodle.org/mod/forum/discuss.php?d=142036

http://www.webtechnick.com/blogs/view/229/CakePHP_Facebook_Plugin_Auth_Facebook_and_more

2 голосов
/ 12 июля 2010

Вы загружаете новый (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 голосов
/ 29 июня 2010

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

1 голос
/ 08 июля 2010

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

1 голос
/ 07 июля 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...