Facebook арқылы сайтқа кіруге арналған php скрипт



Бұл нұсқаулықта біз Facebook PHP Oauth кітапханасын пайдалана отырып пайдаланушыны аутентификациялауды қарастырамыз. Ол арқылы сіз сайтыңызға facebook арқылы тіркелуді жасай аласыз. Facebook API Key және API құпия кодтарын құруға мүмкіндік береді. Ол кодтар әр бағдарламаға әр түрлі болады. Ол кодтарды алу үшін Facebook Apps бөліміне барып жаңа бағдарлама (қосымша) құруыңыз керек. Солай сіз API Key мен API құпия кодтарын ала аласыз.

Кодтарды алдық, енді оларды қолдану үшін фейсбуктың арнайы php тіліне арналған кітапханасын жүктеп алыңыз. Содан соң өзіміздің арнайы класымызды құрып алуымыз керек. Бірден сол кодты келтіре салайын:

ApplicationID     = "$id";
        $this->ApplicationSecret = "$secret";
        $this->CallBack          = "$callback";
        $this->Permission        = "$permission";
        $this->facebook          = new Facebook(array(
            'appId' => $this->ApplicationID,
            'secret' => $this->ApplicationSecret,
            'cookie' => true
        ));
    }
    function connection()
    {
        
        $session = $this->facebook->getSession();
        $me      = null;
        if ($session) {
            try {
                $uid = $this->facebook->getUser();
                $me  = $this->facebook->api('/me');
            }
            catch (FacebookApiException $e) {
                error_log($e);
            }
        }
        
        
        return "




Permission . "\" onlogin='window.location=parseURL(\");" . $this->CallBack . "\";'>Connect "; } function InformationInfo() { if ($_REQUEST["fbs_" . $this->ApplicationID] == "") return "Permission Disallow!"; $PermissionCheck = split(",", $this->Permission); $a = str_ireplace("\"", "", $_REQUEST["fbs_" . $this->ApplicationID]); if (!$a) { return "Permission Disallow!"; } $user = json_decode(file_get_contents('https://graph.facebook.com/me?' . $a)); $Result["UserID"] = $user->id; $Result["Name"] = $user->name; $Result["FirstName"] = $user->first_name; $Result["LastName"] = $user->last_name; $Result["ProfileLink"] = $user->link; $Result["ImageLink"] = ""; $Result["About"] = $user->about; $Result["Quotes"] = $user->quotes; $Result["Gender"] = $user->gender; $Result["TimeZone"] = $user->timezone; if (in_array("email", $PermissionCheck)) { $Result["Email"] = $user->email; } if (in_array("user_birthday", $PermissionCheck)) { $Result["Birthday"] = $user->birthday; } if (in_array("user_location", $PermissionCheck)) { $Result["PermanentAddress"] = $user->location->name; $Result["CurrentAddress"] = $user->hometown->name; } return $Result; } function FBLogin() { $session = $this->facebook->getSession(); $me = null; if ($session) { try { $uid = $this->facebook->getUser(); $me = $this->facebook->api('/me'); } catch (FacebookApiException $e) { error_log($e); } } if ($me) { return $this->InformationInfo(); //return ""; } else { return $this->connection(); } } } ?>


Жоғарыдағы келтірілген код өте маңызды, өйткені ол пайдаланушы аутентификация кезінде қандай құқықтар алуын анықтайды. Құқықтың түрлері:

  1. email — пайдаланушының email адресін ала аламыз
  2. user_friends — пайдаланушының достар тізімін ала аламыз
  3. app_friends -
  4. user_location — пайдаланушының мекен-жайы
  5. read_strem — пайдаланушының жарияланымдарын оқи аламыз
  6. friends_online_presence — онлайн достар тізімін қарау
  7. publish_stream — пайдаланушының атынан, оның лентасында жарияланым жасау

Сонымен, аутентификация үшін email және пайдаланушы профилі туралы мәліметтер жеткілікті. Ол туралы құқық үнсіз келісім бойынша сізге беріледі. Ал қалған құқықтарды алу үшін сіз фейсбукқа сұраныс жіберуіңіз қажет. Фейсбук сұранысты, сіздің бағдарламаңызды және сайтыңызда қарастырып оны қабылдайды немесе қабылдамайды. Бұл жағы түсінікті деп ойлаймын. Енді браузерде іске қосатын test.php файлын құрыңыз. Оның ішінде келесі код болуы қажет:

FBLogin())) {
    print_r($facebook->FBLogin());
} else {
    echo $facebook->FBLogin();
}
?>


Міне, бар болғаны осы. Қиын ештеңесі жоқ.

  • +1
0 пікір
Тек тіркелген қолданушылар ғана пікір қалдыра алады.