【问题标题】:Using the Facebook PHP SDK inside a Cake PHP Application在 Cake PHP 应用程序中使用 Facebook PHP SDK
【发布时间】:2013-09-05 13:52:15
【问题描述】:

我正在寻找有关如何在我的 Cake PHP 应用程序中使用 Facebook PHP SDK 的建议和指导。

我已经阅读了有关将 Facebook PHP SDK 添加为供应商包的文章(关于 SO 的一篇或 2 篇文章),但在查阅了 Cake Cook Book 之后:

http://book.cakephp.org/2.0/en/development/vendor-packages.html

似乎已删除对供应商包的支持,首选方法是将功能重新打包为插件。

您能否告诉我如何执行此操作。最好的情况是在为插件提供一些参数后如何将数据返回到我的 Cake PHP 应用程序的工作示例:

  • 方法:例如。 FQL
  • 查询:例如。选择开斋节,名称,描述, start_time、end_time、位置、地点、pic_cover FROM event WHERE eid = xyz
  • 访问令牌:'应用 ID |密钥”

值得一提的是,我过去曾开发过使用 Facebook Javascript SDK 的客户端 jquery 插件。本质上,我希望构建一个与此等效的服务器端并在我的 CakePHP 应用程序中实现它

【问题讨论】:

    标签: php cakephp plugins facebook-fql facebook-php-sdk


    【解决方案1】:

    我可以看到您正在使用 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;
    }
    

    您也可以在我的博客中看到相同的步骤。 Loading Facebook SDK in CakePHP2

    【讨论】:

      【解决方案2】:

      仍然支持导入供应商库,(不是很详细的)文档是关于供应商资产(CSS、JS、图像等)的。

      假设 Facebook PHP SDK 文件夹位于 /app/Vendor/import the library 中,如 Cook Book 中所述:

      App::import('Vendor', 'Facebook', array
      (
          'file' => 'facebook-php-sdk' . DS . 'src' . DS . 'facebook.php'
      ));
      

      然后按照SDKexamplestests所示使用:

      $facebook = new Facebook(array(
          'appId'  => 'YOUR_APP_ID',
          'secret' => 'YOUR_APP_SECRET',
      ));
      $response = $facebook->api(array(
          'method' => 'fql.query',
          'query' => 'SELECT eid, name, description, start_time, end_time, location, venue, pic_cover FROM event WHERE eid = xyz',
      ));
      

      【讨论】:

        猜你喜欢
        • 2012-02-18
        • 2017-05-07
        • 2019-12-10
        • 1970-01-01
        • 1970-01-01
        • 2015-09-11
        • 2016-01-10
        • 1970-01-01
        • 2012-02-29
        相关资源
        最近更新 更多