Ответ 1
Попробуйте эту Facebook-библиотеку от Danny Tran, организованного в Github. Работает чудеса и довольно легко получить настройку.
У меня возникают проблемы с подключением моего веб-сайта к 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 будет работать.
Любые идеи?
Большое спасибо.:)
Попробуйте эту Facebook-библиотеку от Danny Tran, организованного в Github. Работает чудеса и довольно легко получить настройку.
Вы загружаете новый (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
Эти ссылки могут решить любые проблемы с программированием на 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: могу ли я предотвратить перезагрузку страницы после входа в систему?
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
Вы добавили файл xd_reciever в свой общий каталог????
Вероятно, это может вызвать проблему bcoz xd_reciever, чтобы обезобразить канал между вашим приложением в facebook.
Этот пост может быть вам полезен. Проверьте это.