Ключ автономного доступа Facebook и логин - PullRequest
9 голосов
/ 18 сентября 2009

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

Я хочу, чтобы пользователи моего сайта связывали свою учетную запись Facebook с моим сайтом. Таким образом, они могут видеть свой поток e.t.c на моем сайте.

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

Для этого я понимаю, что мне нужен автономный доступ. (https://developers.facebook.com/docs/authentication/) Хотя из моих поисков мне кажется, что документация немного не подходит ( поэтапный доступ к Facebook * ).

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

Итак, мои вопросы следующие:

  1. Как получить новый бесконечный ключ сеанса после его запроса?
  2. После того, как он у меня есть и сохранен в базе данных - Как мне с ним создать пользователя Facebook вместо обычного ключа ограниченного доступа?

Просто для дополнительной информации. Я использую PHP ( codeigniter ) с библиотекой Eliot Haughin для подключения к Facebook Хотя, если вы можете дать мне код, используя обычную библиотеку php, я просто конвертирую его

Большое спасибо

Ответы [ 3 ]

6 голосов
/ 20 октября 2009

правый. После еще нескольких поисков и осмотра кода. Я понял это.

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

Когда вы получите разрешение offline_access, сохраните ключ сеанса и идентификатор пользователя. (где вы хотите. Я храню мой в моей базе данных).

Ключ бесконечной сессии будет выглядеть примерно так: df4175330aaddb9d50fd8f84-30000799 все, что после «тире» - это идентификатор пользователя.

Затем при следующем вызове API добавьте эту строку кода.

$ this-> fb-> set_user («идентификатор пользователя Facebook», «ключ сеанса автономного доступа», 0); Нотабене ноль - количество времени, прежде чем оно истечет. 0 = никогда.

Мой код в моей библиотеке выглядит следующим образом

$this->fb = new Facebook($this->_api_key, $this->_secret_key);     
//Query Database to see if user had enabled offline access.
//If So extract the userid and session key
$this->fb->set_user($fbuserid, $fbsess, 0);

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

Я думаю, это все. Но если я что-то пропущу, дайте мне знать.

1 голос
/ 18 сентября 2009

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

Вот хороший пост по теме , а вот ошибка, поданная 3 месяца назад .

Короче говоря, Facebook не активно поддерживает этот тип продвижения сеанса - да, это в документации - но это не работает. Это явно не то, что они на самом деле тестируют внутри.

И из опыта позвольте мне сказать вам: если это не очень хорошо документированная, часто используемая функция, вы не можете полагаться на Facebook, чтобы поддерживать ее.

0 голосов
/ 19 октября 2010

Срок действия ключа истекает каждый раз, когда пользователь меняет свой пароль. Это написано в документации.

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