2015-03-31 72 views
3

我每隔幾天就會收到來自Facebook的通知。適用於PHP 5.3的Facebook SDK,可以使用Graph API v2.x

您的應用程序,正在對圖形API的1.0版將被棄用 週四,4月30日,2015年在該日期之前,請您的應用程序升級至2.0版或更高版本的電話

我已經更新JavaScript SDK以使用v2.0。

我現有的Facebook PHP SDK是v.3.1.1

的問題是,最新的PHP SDK需要PHP 5.4或更高版本。 但我無法將現有的PHP版本5.3升級到5.4(我的應用程序代碼與PHP 5.4不兼容)

是否有任何其他舊版本的Facebook PHP SDK可以使用,可以使用圖形API v2.0或更高版本,仍然與PHP 5.3兼容?

+1

你可以st不適合使用API​​ v2的舊版v3 PHP SDK - 您無法明確指定API版本。因此,您可以等待,直到v2將成爲默認設置 - 或者,爲了測試您的應用在4月底之前如何與v2協同工作,您可以在應用儀表板中啓用遷移,以使您的應用自動使用v2進行所有呼叫。 – CBroe 2015-03-31 19:56:30

+0

感謝您的建議。我將在應用儀表板中啓用遷移,以瞭解它將如何工作。謝謝。 – 2015-04-01 03:45:49

回答

2

我不想在我的CentOS 6 Linux服務器上升級PHP 5.3。

我已經在徵求意見的檢查使用新facebook-php-sdk-v4盡了autoload.php

#if (version_compare(PHP_VERSION, '5.4.0', '<')) { 
    #throw new Exception('The Facebook SDK v4 requires PHP version 5.4 or higher.'); 
#} 

但隨後出現在它的許多地方array()[]更換,所以我已經放棄了適應它現在只需要使用過時的(但仍然工作)facebook-php-sdk:它

這裏,全成用戶信息獲取:

<?php 

require_once('facebook-php-sdk-3.2.3/src/facebook.php'); 

const TITLE  = 'My amazing app'; 
const REDIRECT = 'https://example.com/myapp/'; 

#Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false; 
#Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYHOST] = 2; 

$client = new Facebook(array(
     'appId' => REPLACE_ME, 
     'secret' => REPLACE_ME, 
)); 

if (isset($_REQUEST['logout'])) { 
     $client->destroySession(); 
     header('Location: ' . REDIRECT); 
     exit(0); 
} 

if ($client->getUser()) { 
     try { 
       $me = $client->api('/me?fields=id,first_name,gender'); 
       $body = '<PRE>' . print_r($me, TRUE) . '</PRE>'; 
     } catch (FacebookApiException $ex) { 
       error_log($ex); 
       $body = '<PRE>' . htmlspecialchars($e->getMessage()) . '</PRE>'; 
     } 
} else { 
     $body = sprintf('<P><A HREF="%s">Login</A></P>', $client->getLoginUrl()); 
} 

?> 

<!DOCTYPE HTML> 
<HTML> 
<HEAD> 
     <TITLE><?= TITLE ?></TITLE> 
</HEAD> 
<BODY> 
     <?= $body ?> 
     <P><A HREF="<?= REDIRECT ?>?logout">Logout</A></P> 
</BODY> 
</HTML> 

不要忘記 - 在Facebook console

    1. 獲取應用程序ID和祕密註冊https://example.com/myapp/爲畫布回調(也可選擇爲有效的OAuth2重定向URL)在同一地點

    另一種選擇是使用Facebook SDK for JavaScript(這裏用jQuery):

    <!DOCTYPE HTML> 
    <HTML> 
    <HEAD> 
         <TITLE><?= TITLE ?></TITLE> 
         <SCRIPT SRC="//ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></SCRIPT> 
         <SCRIPT> 
           $(document).ready(function() { 
             //$.ajaxSetup({ cache: true }); 
             $.getScript('//connect.facebook.net/en_US/sdk.js', function() { 
               FB.init({ 
                 'appId' : '<?= APP_ID ?>', 
                 'xfbml' : false, 
                 'cookie' : true, 
                 'status' : true, 
                 'version': 'v2.6' 
               });  
               FB.login(function(response) { 
                 if (response.authResponse) { 
                   console.log('Fetching your information.... '); 
                   FB.api('/me?fields=id,first_name,gender', function(response) { 
                     console.log(response); 
                   }); 
                 } else { 
                   console.log('User cancelled login or did not fully authorize.'); 
                 } 
               }); 
             }); 
           }); 
         </SCRIPT> 
    </HEAD> 
    <BODY> 
         <?= $body ?> 
         <P><A HREF="<?= REDIRECT ?>?logout">Logout</A></P> 
    </BODY> 
    </HTML> 
    
  • 相關問題