heise / shariff
Shariff的PHP后端。Shariff允许网站用户在不牺牲隐私的情况下分享他们喜欢的网页内容。
Requires
- php: ^7.4 || ^8.0 <8.2
- guzzlehttp/guzzle: ^7.4.1
- laminas/laminas-cache: ^3.1
- laminas/laminas-cache-storage-adapter-filesystem: ^2.0
- laminas/laminas-cache-storage-adapter-memory: ^2.0
- laminas/laminas-cache-storage-deprecated-factory: ^1.0
- psr/log: ^1.0
Requires (Dev)
- phpunit/phpunit: ^9.5
- dev-master
- v10.0.0
- 9.0.2
- 9.0.1
- 9.0.0
- 8.2.2
- 8.2.1
- 8.2.0
- 8.1.2
- 8.1.1
- 8.1.0
- 8.0.0
- 7.1.4
- 7.1.3
- 7.1.2
- 7.1.1
- 7.1.0
- 7.0.2
- 7.0.1
- 7.0.0
- 6.0.1
- 6.0.0
- 5.2.4
- 5.2.3
- 5.2.2
- 5.2.1
- 5.2.0
- 5.1.0
- 5.0.0
- 4.1.0
- 4.0.2
- 4.0.1
- 4.0.0
- 3.0.1
- 3.0.0
- 2.0.0
- 1.5.2
- 1.5.1
- 1.5.0
- 1.4.1
- 1.4.0
- 1.3.0
- 1.2.0
- 1.1.1
- 1.1.0
- 1.0.2
- 1.0.0
- dev-feat/captainhook
- dev-docker
This package is auto-updated.
Last update: 2024-09-18 17:53:00 UTC
README
Shariff用于确定一个页面在社交媒体上的分享频率,但不会从显示页面向社交媒体网站生成请求。
本文档描述了Shariff的PHP后端。
支持的服务
- Buffer
- StumbleUpon
- Vk
需求
要在您的服务器上运行Shariff PHP后端,您需要以下PHP版本之一
- 7.4
- 8.0
- 8.1
- 8.2
不支持旧版本和HHVM。
在自己的服务器上安装Shariff后端
要在特定的URL下运行Shariff,将发布的zip文件解压缩到您的Web服务器文档根目录下的一个目录中。
查看index.php
文件中的示例应用程序,并根据需要调整配置。
以下配置选项可用
缓存设置
默认情况下,Shariff使用文件系统缓存。通过指定Laminas\Cache\Storage\Adapter的不同适配器,您可以告诉Shariff使用另一个缓存。您还可以指定该缓存适配器的选项。
这些选项仅适用于默认缓存类(LaminasCache
)。如果您实现自定义缓存,您可以指定自己的选项。
客户端选项
后端使用Guzzle作为HTTP客户端。Guzzle有很多可设置的选项,例如超时和连接超时。有关详细列表,请参阅http://docs.guzzlephp.org/en/latest/request-options.html。为了设置这些选项,请以“client”键将它们作为json传递。
服务设置
要将配置选项传递给服务,您可以将其添加到json中,在服务的名称下。目前只有Facebook服务有用于facebook应用程序ID和客户端密钥的选项,以便使用图形API ID方法获取当前的分享次数。
Facebook服务选项
要使用图形API ID方法获取分享次数,您需要在facebook.com上设置一个应用程序,并将应用程序ID和客户端密钥传递给选项。似乎ID方法返回最新的分享次数,但只能与已注册的应用程序一起使用。
完整的配置示例
use Heise\Shariff\LaminasCache; /** * Sample configuration * * @var array */ private static $configuration = [ 'cacheClass' => 'Heise\\Shariff\\LaminasCache', 'cache' => [ 'ttl' => 60, 'cacheDir' => '/tmp/shariff/cache', 'adapter' => 'Filesystem', 'adapterOptions' => [ // ... ] ], 'client' => [ 'timeout' => 4.2, 'headers' => [ 'User-Agent' => 'shariff/1.0', ] // ... (see "Client options") ], 'domains' => [ 'www.heise.de', 'www.ct.de' ], 'services' => [ 'Facebook', 'Reddit', 'StumbleUpon', 'Pinterest', 'Xing', 'Buffer', 'Vk' ], 'Facebook' => [ 'app_id' => '1234567890', 'secret' => 'terces' ] ];
测试您的安装
如果后端在http://example.com/my-shariff-backend/
下运行,调用URLhttp://example.com/my-shariff-backend/?url=http%3A%2F%2Fwww.example.com
应该返回一个包含数字的JSON结构,例如。
{"facebook":1452,"reddit":7,"stumbleupon":4325,"pinterest":3,"buffer":29,"vk":326}
Shariff面向对象接口
如果您需要更多控制,可以在自己的PHP代码中调用Shariff。以下代码片段应该能让您开始。 $options
与上面描述的相同。
use Heise\Shariff\Backend; $options = [ "domains" => ["www.heise.de", "www.ct.de"], "cache" => ["ttl" => 1], "services" => ["Facebook", "Reddit", "StumbleUpon", "Pinterest", "Buffer", "Vk"] ]; $shariff = new Backend($options); $counts = $shariff->get("https://www.heise.de/"); echo $counts["facebook"];