2014-03-06 21 views
0

插件如何與Facebook服務器通信而不會暴露太多信息。如何構建像facebook登錄插件的插件?

我想知道如何構建自己的插件,可以在安裝的網站和我的網站之間進行通信。

我的知識僅限於HTML5,CSS3,PHP5,Javascript和一些Jquery。 我意識到可能有很多方法,如果你能指出我朝着正確的方向,或者給我一個想法,我只是在流浪。 (:在此先感謝

+0

API ................ –

回答

-1
  1. 創建於developers.facebook.com
  2. 下載了Facebook SDK的PHP應用程序,因爲這是你知道什麼(https://developers.facebook.com/docs/reference/php
  3. 閱讀他們對如何實現登錄指南(很容易和有益的) https://developers.facebook.com/docs/facebook-login/login-flow-for-web/

這是一個示例PHP函數,你可以建立在:

function facebook_login() 
{ 
    $user = new user(); 

    // Call Facebook API 
    if (!class_exists('FacebookApiException')) { 
     require_once ('facebook.php'); 
    } 

    $facebook = new Facebook(array(
     'appId' => $app_id, 
     'secret' => $app_secret, 
    )); 
    $fbuser = $facebook->getUser(); 

    if ($fbuser) { 
     try { 
      // Proceed knowing you have a logged in user who's authenticated. 
      $me = $facebook->api('/me'); //user 
      $uid = $facebook->getUser(); 
     } 
     catch(FacebookApiException $e) { 
      echo error_log($e); 
      return; 
     } 
    } 

    // redirect user to facebook login page if empty data or fresh login requires 
    if (!$fbuser) { 
     $loginUrl = $facebook - getLoginUrl(array(
      'redirect_uri' => $_SERVER["HTTP_REFERER"], 
      false 
     )); 
     $logout = $facebook->getLoginUrl(); 
     echo $loginUrl; 
     return; 
    } 

    // user details 
    $user->name = $me['name']; 
    $user->email = $me['email']; 
    $user->fbid = $uid; 

    // Check user id in your database 
    $user->selectbyfbid(); 
    if ($user->database->rows > 0) { 
     // User exist, Show welcome back message 
     // User is now connected, log him in 
    } 
    else { 
     // User is new, Show connected message and store info in our Database 
     // Insert user into Database. 
     $user->insert_fb(); 
    } 

    $_SESSION["access_token"] = $facebook->getAccessToken(); 
    login_user($user); 
} 

在HTML:

<a href="#" onclick="LoadingAnimate();"> 
    <div class="fb-login-button" 
     onlogin="javascript:CallAfterLogin();" 
     data-width="600" data-max-rows="1" 
     data-show-faces="false" 
     scope="publish_stream,email,publish_actions,offline_access"> 

JavaScript代碼:

function CallAfterLogin(){ 
    FB.login(function(response) {  
     if (response.status === "connected") 
     { 
      LoadingAnimate(); //show a waiting gif or whatever 
      FB.api('/me', function(data) { 
       if(data.email == null) 
       { 
        //Facbeook user email is empty, you can check something like this. 
        ResetAnimate(); 

       }else{ 
        AjaxResponse(); 
       } 
      }); 
     } 
    }); 
} 
function AjaxResponse() 
{ 
    var myData = 'connect=1&action=fb_login'; 
    jQuery.ajax({ 
     type: "POST", 
     url: "/process_user.php", 
     dataType:"html", 
     data:myData, 
     cache: false, 
     success:function(response){ 
      if(target.length > 1) 
       window.location.href = target; 
      else 
       location.reload(); 
     }, 
     error:function (xhr, ajaxOptions, thrownError){ 
     //$("#results").html('<fieldset style="color:red;">'+thrownError+'</fieldset>'); //Error 
     } 
    }); 
} 

我希望這有助於你開始!

+0

不解決問題。 –