jorge / cakephp-facebook
CakePHP 3 Facebook 插件
Requires
- php: >=5.4
- facebook/php-sdk-v4: ~5.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-08-28 14:22:34 UTC
README
这是一个 CakePHP 3.x 插件,允许应用程序实现 Facebook 登录。
需求
- 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
// 可以在配置中设置email
// 可以在配置中设置
对于已存在的应用程序,如果已通过不同列名创建了 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->loginButton()
- $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
"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 抱怨找不到插件,您需要将插件添加到 plugins
数组中的 vendor/cakephp-plugins.php
文件。例如,'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', // https://developers.facebook.com/docs/facebook-login/permissions/v2.3 'enable_create' => true, 'redirect_url' => '', //ie. Router::url(['controller' => 'Users', 'action' => 'login'], TRUE), 'post_login_redirect' => '' //ie. Router::url(['controller' => 'Users', 'action' => 'account'], TRUE) // 'user_columns' => ['first_name' => 'fname', 'last_name' => 'lname', 'username' => 'uname', 'password' => 'pass', 'extra_columns' => ['active' => 1]] //not required ]); }
用法
注意:FacebookHelper会自动由Graph Component
加载。如果这不是您想要的,请在上方添加'enable_graph_helper' => false,
到$this->loadComponent()
。
助手模板文件设置
- 在
<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/login-button
Default Options
* 'auto-logout-link' => false,
* 'max-rows' => 1,
* 'onlogin' => null,
* 'size' => 'small',
* 'show-faces' => false,
* 'default-audience' => 'friends'
`<?php echo $this->Facebook->loginButton($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对话框
免责声明
尽管我们已经进行了许多测试以确保此插件按预期工作,但我们建议您自行承担风险使用。与其他任何事物一样,您应首先在测试环境中测试任何添加到您应用程序的内容。请通过问题或拉取请求提供任何修复或增强功能。