$uUrl = "https://graph.facebook.com/me?access_token={$fb_token}"; $uResponse = file_get_contents($uUrl); $UserData = json_decode($uResponse); $UserDataSerialized = serialize($UserData); $arFileds = (array) unserialize($UserDataSerialized); // gender] => male // graph.facebook.com/tabotaOG/picture?type=large // printAr($arFileds); if (!$USER_ID) { $rsUser = CUser::GetByLogin($arFileds["email"]); if ($arUser = $rsUser->Fetch()) { //Если найден, то вот он наш пользователь авторизуем, если нет, то ищем по ID Facebook $ID = $arUser["ID"]; } else { //Пользователь с логином не найден!'; if ($userFromFB_ID = User::findFromFB($arFileds["id"])) { // ищем по ID Facebook $ID = $userFromFB_ID; } else { //тогда создаем нового пользователя $user = new CUser(); $password = randString(7); $arFields = array("NAME" => $arFileds["first_name"], "LAST_NAME" => $arFileds["last_name"], "EMAIL" => $arFileds["email"], "LOGIN" => $arFileds["email"], "PERSONAL_BIRTHDAY" => str_replace("/", ".", $arFileds["birthday"]), "LID" => "ru", "ACTIVE" => "Y", "PASSWORD" => $password, "CONFIRM_PASSWORD" => $password, "PERSONAL_PHOTO" => CFile::MakeFileArray("http://graph.facebook.com/" . $arFileds["id"] . "/picture?type=large")); $ID = $user->Add($arFields); } } // Тут пользователь должен быть полюбому // Авторизуем его $userRes = new CUser(); $userRes->Authorize($ID); }