我可以看到您正在使用 CakePHP 2。最近我使用 SDK 版本 5 开发了一个 Facebook 应用程序,它使用了 Namespace 。我在控制器中加载 SDK 所做的是,修改了 Bootstrap 文件以包含使用命名空间的库。在 /app/Config/bootstrap.php 添加以下代码:
spl_autoload_register(function ($class) {
foreach (App::path('Vendor') as $base) {
$path = $base . str_replace('\\', DS, $class) . '.php';
if (file_exists($path)) {
include $path;
return;
}
}
});
然后我将 Facebook Sdk 放在 /app/Vendor/ 目录中。我可以在我的控制器中成功加载 Facebook 库,如下所示:
function login(){
session_start();
App::import('Vendor','Facebook',array('file'=>'Facebook'.DS.'Facebook.php'));
$this->fb = new Facebook\Facebook([
'app_id' => 'YOUR APP ID',
'app_secret' => 'APP SECRET',
'default_graph_version' => 'v2.5',
]);
$helper = $this->fb->getRedirectLoginHelper();
$permissions = ['email', 'user_likes','publish_actions','manage_pages','publish_pages','read_page_mailboxes','pages_show_list','pages_manage_cta']; // optional
$loginUrl = $helper->getLoginUrl('Your Callback URL', $permissions);
echo 'Log in with Facebook!';
exit;
}
您也可以在我的博客中看到相同的步骤。在 CakePHP2 中加载 Facebook SDK