akkaweb / cakephp-facebook
CakePHP 3 Facebook 插件
Requires
- php: >=5.4
- facebook/graph-sdk: ^5.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-23 08:28:27 UTC
README
重要:本分支(Master)的支持已被停止。请使用 SDK5 分支或最新标记版本。此分支将保留以支持 Facebook SDKv4,但不会继续改进。我目前正在努力支持 Facebook SDKv5。请参阅该分支中的安装说明。
CakePHP 3 Facebook 插件
一个允许 Facebook 登录到应用程序的 CakePHP 3.x 插件。
要求
- CakePHP 3.x 与正确配置的 Auth 组件。有关设置,请参阅 https://book.cakephp.com.cn/3.0/en/controllers/components/authentication.html
- PHP 5.4.6+
- Facebook PHP SDK 4.0+
- 用户表至少应包含以下列
facebook_id varchar(20)
first_name
// 可在配置中设置last_name
// 可在配置中设置username
// 可在配置中设置password
// 可在配置中设置
对于已经存在且已使用不同列名创建了 first_name
、last_name
、username
和 password
的现有应用程序,您可以在将 Component
加载到 AppController.php
文件时,在配置选项中动态设置它。请参阅下文的配置部分第 2 节。
注意:Facebook PHP SDK 是必需的。如果尚未安装,Composer 会自动为您安装 Facebook。如果选择手动下载,您必须将 Facebook 源代码下载到 vendor/facebook/php-sdk-v4
并确保它可以由 composer 加载。否则,您需要手动在应用程序的 bootstrap.php
中包含 Facebook 的 autoload.php
文件。
包含
- Facebook Graph 组件
- Facebook Graph 助手
- $this->Facebook->loginLink()
- $this->Facebook->likeButton()
- $this->Facebook->shareButton()
- $this->Facebook->sendButton()
- $this->Facebook->followButton()
- $this->Facebook->comments()
- $this->Facebook->embeddedPosts()
- $this->Facebook->embeddedVideo()
- $this->Facebook->page()
***** 更多关于如何使用每个组件的详细信息,请见下方
安装
Composer(最佳选择)
- 将以下内容添加到您应用程序根目录中的
composer.json
文件的require
部分中。例如,/var/www/domain.com/composer.json
// NOTE: Use instructions in SDK5 Branch if this is a new installation. This branch his no longer supported. "require": { "akkaweb/cakephp-facebook": "dev-master" }
- 在应用程序根目录中运行以下命令
sudo php composer.phar update
注意:如果找不到 composer.phar
,您需要安装它。请参阅 CakePHP 的文档 -> https://book.cakephp.com.cn/3.0/en/installation.html。请参阅安装 CakePHP 部分
Git Clone(plugins/AkkaFacebook)
git clone git@github.com:akkaweb/AKKA-CakePHP-Facebook-Plugin.git
下载
https://github.com/akkaweb/AKKA-CakePHP-Facebook-Plugin/archive/master.zip
注意:当使用手动下载或 Git Clone 安装,并且 CakePHP 抱怨找不到插件时,您需要将插件添加到 vendor/cakephp-plugins.php
中的 plugins
数组 [] --> 'AkkaFacebook' => $baseDir . '/plugins/AkkaFacebook/'
。如果您正在使用 composer,运行 php composer.phar dumpautoload
可能就足够了。如果不起作用,请将以下内容添加到根应用程序 composer.json
文件的 "autoload"
部分:在 "psr-4":
部分中添加 "AkkaFacebook\\": "./plugins/AkkaFacebook/src"
配置
- 在您应用的
bootstrap.php
文件中加载插件
Plugin::load('AkkaFacebook', ['bootstrap' => false, 'routes' => true]);
- 在
AppController.php
中加载插件的组件
注意:您需要从 http://developers.facebook.com 获取您的 Facebook App Id
和 App Secret
。一旦您进入该页面并创建了一个应用,您可以检索您的 App Id
和 App Secret
。请确保您已在 设置
页面的 App Domains
中添加了您的域名。
user_columns
是可选的,并且只有在您的 Users
数据库列与上方需求部分指定的默认值不同时才应使用。
public function initialize(){ parent::initialize(); $this->loadComponent('AkkaFacebook.Graph', [ 'app_id' => 'your-fb-app-id', 'app_secret' => 'your-fb-app-secret', 'app_scope' => 'email,public_profile', // https://developers.facebook.com/docs/facebook-login/permissions/v2.4 'redirect_url' => Router::url(['controller' => 'Users', 'action' => 'login'], TRUE), // This should be enabled by default 'post_login_redirect' => '' //ie. Router::url(['controller' => 'Users', 'action' => 'account'], TRUE) // 'user_columns' => ['first_name' => 'fname', 'last_name' => 'lname', 'username' => 'uname', 'password' => 'pass'] //not required ]); }
用法
注意:FacebookHelper 会自动由 Graph Component
加载。如果不希望这样,请在上面的 $this->loadComponent()
中添加 'enable_graph_helper' => false,
。
助手模板文件设置
- 在
<body>
标签后立即添加<?php echo $this->Facebook->initJsSDK(); ?>
登录链接(可定制的 Facebook 链接 <a href)
参考 - https://developers.facebook.com/docs/plugins/login-button
Optional Settings Array
* id -> Link id
* class -> Link class
* title -> Link title
* style -> Any html style
* label -> Hyperlink text
`<?php echo $this->Facebook->loginLink($options = []); ?>`
点赞按钮(Facebook 点赞)
参考 - https://developers.facebook.com/docs/plugins/like-button
Default Options
* 'action' => 'like', // like, recommend
* 'share' => true,
* 'width' => 450,
* 'show-faces' => true,
* 'layout' => 'standard' // standard, box_count, button_count, button
`<?php echo $this->Facebook->likeButton($options = []); ?>`
分享按钮(Facebook 分享)
参考 - https://developers.facebook.com/docs/plugins/share-button
Default Options
* 'layout' => 'button_count' // button_count/box_count/button/icon_link/icon/link
`<?php echo $this->Facebook->shareButton($options = []); ?>`
发送按钮(Facebook 发送)
参考 - https://developers.facebook.com/docs/plugins/send-button
Default Options
* 'width' => 50,
* 'height' => 30,
* 'colorscheme' => dark
`<?php echo $this->Facebook->sendButton($options = []); ?>`
关注按钮(Facebook 关注)
参考 - https://developers.facebook.com/docs/plugins/follow-button
Default Options
* 'width' => 300,
* 'height' => 100,
* 'colorscheme' => 'light',
* 'layout' => 'standard',
* 'show-faces' => false,
* 'kid-directed-site' => false
`<?php echo $this->Facebook->followButton($options = []); ?>`
评论(Facebook 评论)
参考 - https://developers.facebook.com/docs/plugins/comments
Default Options
* 'colorscheme' => light, // light/dark
* 'mobile' => 'Auto-detected',
* 'num-posts' => 10,
* 'order-by' => 'social', // social/reverse_time/time
* 'width' => 550
`<?php echo $this->Facebook->comments($options = []); ?>`
嵌入帖子(Facebook 嵌入帖子)
参考 - https://developers.facebook.com/docs/plugins/embedded-posts
Default Options
* 'width' => 500
`<?php echo $this->Facebook->embeddedPosts($options = []); ?>`
嵌入视频(Facebook 嵌入视频)
参考 - https://developers.facebook.com/docs/plugins/embedded-video-player
Default Options
* 'href' => ''
* 'width' => 500
`<?php echo $this->Facebook->embeddedVideo($options = []); ?>`
页面插件(Facebook 页面插件)
参考 - https://developers.facebook.com/docs/plugins/page-plugin
Default Options
* 'href' => 'https://#/facebook',
* 'height' => 300,
* 'hide-cover' => false,
* 'show-facepile' => true,
* 'show-posts' => false,
* 'width' => 500
`<?php echo $this->Facebook->page($options = []); ?>`
即将推出
- Feed 对话框
免责声明
尽管我们已经进行了许多测试以确保此插件按预期工作,但我们建议您自行承担风险使用它。与其他任何事物一样,您应首先在测试环境中测试您应用程序中的任何新增功能。请通过问题或拉取请求提供任何修复或增强功能。