2016-03-30 55 views
-4

我正在開發一個項目,我需要facebook整合。 我已經嘗試在Facebook上創建應用程序ID和密鑰。 但它沒有完成如何做到這一點 以及我將如何整合到我的項目中。如何在我的項目中集成登錄與facebook按鈕

+0

在這裏你可以找到你需要的一切:https://developers.facebook.com/ –

+0

你說的「facebook集成」是什麼意思?你真的提到「登錄」,或者只是爲了顯示那些「喜歡」的按鈕和東西? – arkascha

+0

查看官方文檔https://developers.facebook.com/docs/facebook-login –

回答

0

您需要下載Facebook PHP SDK並構建您的腳本。這裏是一個重定向到登錄腳本:

<?php 

session_start(); 

require_once("lib/src/Facebook/autoload.php"); 

// 1. init facebook 
$fb = new Facebook\Facebook([ 
    'app_id'  => FACEBOOK_APP_ID, 
    'app_secret' => FACEBOOK_APP_SECRET 
]); 

// 2. Login (session_start must be called before) 
$helper  = $fb->getRedirectLoginHelper(); 

if ($_GET['code']){ // 4. IF code existing in the url, it is a redirect (after facebook login) 

    try { 
     // 5. Get Access Token 
     $accessToken = $helper->getAccessToken(); 
    } catch(Facebook\Exceptions\FacebookResponseException $e) { 
     // When Graph returns an error 
     echo 'Graph returned an error: ' . $e->getMessage(); 
     exit; 
    } catch(Facebook\Exceptions\FacebookSDKException $e) { 
     // When validation fails or other local issues 
     echo 'Facebook SDK returned an error: ' . $e->getMessage(); 
     exit; 
    } 

    if (isset($accessToken)) { 

     // 6. Logged in! 
     $_SESSION['facebook_access_token'] = (string) $accessToken; 
     // 7. Now you can redirect to another page and use the 
     // access token from $_SESSION['facebook_access_token'] 
     $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); 

     try{ 
      // YOU CAN DO SOMETHING WITH FACEBOOK API HERE 
      $response = $fb->get('{DO_SOMETHING_HERE}', $accessToken); 
      $result = $response->getDecodedBody(); 
     } catch(Facebook\Exceptions\FacebookResponseException $e) { 
     } catch(Facebook\Exceptions\FacebookSDKException $e) { 
     } 

    } 

} else { 

    // 3. redirect to facebook link with permission and callback url  
    $redirect_url = {URL_OF_THIS_PAGE}; 
    $permissions = ['email','publish_actions','public_profile']; // optional 
    $loginUrl = $helper->getLoginUrl($redirect_url, $permissions); 
    header ("Location: ".$loginUrl); 
    exit; 

} 

?> 
+1

我不會爲初學者提供php sdk。你不應該告訴人們他們「需要下載php sdk」。他們真的不會。他甚至沒有提及他的編程語言,它可能是任何東西。這個問題只需要關閉或改進。 – luschn