Кнопка входа в Facebook XFBML для предотвращения всплывающих окон - PullRequest
0 голосов
/ 07 января 2012

длинная история

В настоящее время я работаю над сайтом, который ограничивает часть его содержимого зарегистрированными пользователями (пользователями, которые заполнили регистрационную форму) и пользователями Facebook (которые авторизовали сайт для доступа к своей информации). Я использую cookie-файл для хранения того, какой тип входа использовался в последний раз, когда пользователь был на этом сайте. 0 означает «нет предыдущих входов» или «пользователь вышел из системы», 1 для «зарегистрированного пользователя» и 3 для «пользователя Facebook». Если пользователь Facebook вошел в свою учетную запись Facebook, я хочу, чтобы сайт регистрировал пользователя ТОЛЬКО если файл cookie имеет значение «2» (предыдущий вход был выполнен с использованием входа в Facebook). В противном случае, я хочу, чтобы пользователь нажал кнопку «Facebook». По умолчанию он открывает всплывающее окно и закрывает его немедленно. Как я могу предотвратить появление всплывающего окна и отправку пользователя по определенному URL-адресу вместо этого?

Для тех, кто не понимает моего грязного разговора или просто хочет добраться до сути

У меня есть кнопка входа в Facebook (), и вместо всплывающего окна она нужна для перенаправления пользователя.

Ответы [ 2 ]

0 голосов
/ 07 января 2012

Используйте PHP-SDK:

<?php
require 'facebook.php'; # The SDK

# Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
  'appId'  => 'APPID',
  'secret' => 'APPSECRET',
));
# ----------------------------------------------------------------------------------------
# ----------------------------------------------------------------------------------------

// Get User ID
$user = $facebook->getUser();

/* We may or may not have this data based on whether the user is logged in.
   If we have a $user id here, it means we know the user is logged into
   Facebook, but we don't know if the access token is valid. An access
   token is invalid if the user logged out of Facebook. */

if ($user) {
  try {
    # Proceed knowing you have a logged in user who's authenticated.
    $dt = $facebook->api('/me'); # User Data
    $lk = $facebook->api('/me/likes'); # User like's Data
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}

# ----------------------------------------------------------------------------------------
# ----------------------------------------------------------------------------------------
# Handler for Login Status
if ($user) {
  $logoutUrl = $facebook->getLogoutUrl();
} else {

  # This is the User LogIn URL, and if the user hasn't already given your app the permissions this url will ask him/her for that.      

  # After the 'scope' is where the permission are written.

  $loginUrl = $facebook->getLoginUrl(array("scope" => "email,user_birthday,user_likes,user_work_history,user_location,user_education_history"));
}
# -------------------------------------------------------------------------------------
if (!$user): header ('Location:'.$loginUrl.''); # This is where we check if the user is logged in to facebook or not, if not, the user will be re-directed to the log in page.
    else: 
    # If the user is logged in, do some code...

    endif;
?>
0 голосов
/ 07 января 2012

Используйте функцию Fav.getLoginStatus () Javascript SDK для проверки статуса входа пользователей.Смотри: http://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/

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