簡體   English   中英

Facebook連接無法使用php SDK正常工作

[英]Facebook connect not working using php SDK

我正在使用Facebook Connect php sdk創建一個網站,當我使用臉書登錄時,它可以正確登錄臉書,但用戶未在我的網站中注冊,因此用戶無法登錄。當我打印從中返回的詳細信息時臉書顯示所有詳細信息,例如名字,姓氏,鏈接,但電子郵件和用戶名字段保留為空。

    This is my code,

> require 'facebook.php'; $facebook = new Facebook(array(   'appId'  =>
> 'xxxxxxxxxx',   'secret' => 'xxxxxxxxxxxxxxxxxxxxxxx',
> ));
> 
> $user = $facebook->getUser();
> 
> $loginUrl = $facebook->getLoginUrl();
> 
> if ($user) {   try {
>     $user_profile = $facebook->api('/me');   } catch (FacebookApiException $e) {
>     error_log($e);
>     $user = null;   } } if ($user) { 
>       $facebook_userdetails = $facebook->api ( '/me' );
>               //  print_r($facebook_userdetails); exit;           if (is_array($facebook_userdetails )) 
>                  {
>                    $FBId = $facebook_userdetails ['id'];
>                    $FBName = $facebook_userdetails ['name'];
>                    $FBFirstName = $facebook_userdetails ['first_name'];
>                    $FBLastName = $facebook_userdetails ['last_name'];
>                    $FBLink = $facebook_userdetails ['link'];
>                    $FBUsername = $facebook_userdetails ['username'];
>                    $FBGender = $facebook_userdetails ['gender'];
>                    $FBEmail = $facebook_userdetails ['email'];
>                    $FBTimezone = $facebook_userdetails ['timezone'];
>                    $FBLocale = $facebook_userdetails ['locale'];                   
>                    $FBVerified = $facebook_userdetails ['verified'];
>                    $FBUpdated_time = $facebook_userdetails ['updated_time'];                       
>                 } 
>                 else
>                   $this->view->error = $facebook_userdetails;         echo            "<body onLoad='myfunc()'> 
>            <form name='facebook' action='fbconnect_login.php' method='POST' id='face'>
>                   <input type='hidden' name='FBId' value='$FBId' />
>                   <input type='hidden' name='FBName' value='$FBName' />
>                   <input type='hidden' name='FBFirstName' value='$FBFirstName' />
>                   <input type='hidden' name='FBLastName' value='$FBLastName' />
>                   <input type='hidden' name='FBLink' value='$FBLink' />
>                   <input type='hidden' name='FBUsername' value='$FBUsername' />
>                   <input type='hidden' name='FBGender' value='$FBGender' />
>                   <input type='hidden' name='FBEmail' value='$FBEmail' />
>                   <input type='hidden' name='FBTimezone' value='$FBTimezone' />
>                   <input type='hidden' name='FBLocale' value='$FBLocale' />
>                   <input type='hidden' name='FBVerified' value='$FBVerified' />
>                   <input type='hidden' name='FBUpdated_time' value='$FBUpdated_time' />
>               </form>             </body>" ;             $logoutUrl = $facebook->getLogoutUrl(); } else {    $loginUrl =
> $facebook->getLoginUrl();   echo "<script>window.location =
> '$loginUrl';</script>"; } $naitik = $facebook->api('/naitik');    ?>
> <script type="text/javascript"> function myfunc () { var frm =
> document.getElementById("face"); frm.submit(); } </script>

這是我的html內容,

<a id="fb-login" style="background:none;width:auto;height:25px;" class="fb_button fb_button_medium" href="javascript:void(0);">Login With Facebook</a>


<script type="text/javascript">
$('#fb-login').click(function()
  var left = (screen.width/2)-(800/2);
            var top = (screen.height/2)-(400/2);
            signinWin = window.open("https://www.facebook.com/dialog/oauth?client_id=375057399186229&redirect_uri=http%3A%2F%2Flivedev.pharmacydirect.co.nz%2Fweb%2Ffb_main.php&state=69d3e5e4348786ab4bb4ab7f723c931a", "SignIn", "width=800,height=400,toolbar=0,scrollbars=1,status=0,resizable=0,location=0,menuBar=0,left="+left+",top="+top);
            setTimeout(CheckLoginStatus, 2000);
            signinWin.focus();
            return false;
);
  function CheckLoginStatus() 
        if (signinWin.closed) 
            window.location.reload();

        else setTimeout(CheckLoginStatus, 1000);

</script>

任何幫助,謝謝。...........

電子郵件需要擴展權限:

$params = array('scope' => 'email');
$loginUrl = $facebook->getLoginUrl($params);

用戶名由Facebook用戶設置,不是必需的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM