Подтвердить что ты не робот

Добавление Facebook Connect к веб-сайту CodeIgniter

У меня возникают проблемы с подключением моего веб-сайта к 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>

Теперь вот первая проблема с но теперь решена. Проблема заключалась в том, что документы для SDK JavaScript говорят, что метод 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" показывает библиотеку Эллиота Хоотина. Я загружаю файлы, помещаю их все в нужные места, а затем загружаю библиотеку.

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

$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 будет работать.

Любые идеи?

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

4b9b3361

Ответ 1

Попробуйте эту Facebook-библиотеку от Danny Tran, организованного в Github. Работает чудеса и довольно легко получить настройку.

Ответ 2

Вы загружаете новый (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. Этот пример auth для JS SDK также может помочь: http://fbrell.com/auth/all-in-one

Ответ 3

Эти ссылки могут решить любые проблемы с программированием на 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, Facebook javascript SDK, PHP SDK Переадресация после входа в facebook doesnt 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/projects/wp-fb-autoconnect

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

Ответ 4

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

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