dunglas / php-socialshare
检索社交网络分享数和分享链接
Requires
- php: >=5.3
- ext-json: *
- doctrine/cache: ~1.3.0
Requires (Dev)
- phpspec/phpspec: ~2.0
README
SocialShare 是一个 PHP 库,允许检索主要社交网络上 URL 的分享次数。它还能生成有效的分享链接。
目前支持
- Google Plus
- Scoop.it!
- StumbleUpon
- Tumblr
关键特性
- 速度:服务器端检索计数并缓存;无 JavaScript SDK 加载;无从访客浏览器到社交网络的 HTTP 请求
- 隐私:因此,不会将您的访客数据发送到社交网络,尊重其隐私
- 定制:无需使用官方社交网络按钮,可以创建显示分享次数的美丽自定义按钮
缺点
对于大多数社交网络,分享数是通过社交网络未官方认可的服务获取的。这些服务可能随时被关闭。
服务 | 官方方式? |
---|---|
是 | |
否 | |
否 | |
是 | |
否 | |
Scoop.it! | 否 |
StumbleUpon | 否 |
当分享次数超过 1000 时,Google 只返回一个估计值(例如 >10K)。PHP Social Share 将此估计值转换为整数。
Tumblr 的分享数无法通过任意 URL 获取,因此无法通过此库获取。
安装
使用 Composer 安装 SocialShare
composer require dunglas/php-socialshare
用法
缓存
SocialShare 依赖于 Doctrine Cache 库来存储从社交网络检索的数据。Doctrine Cache 支持许多缓存系统,包括但不限于文件、Memcache、MongoDB、Redis 和 APC。使用适合您需求的系统。
延迟更新
当 \SocialShare\SocialShare::getShares()
方法的第三个参数设置为 true 时,分享计数数永远不会从社交网络检索:如果缓存中已有值(其新旧无关)则使用,否则返回 0
要强制更新分享计数,必须调用 \SocialShare\SocialShare::update()
方法。
通过此调整,检索社交网络分享计数的 HTTP 请求将在页面加载后发出。当然,只有下一个访客会看到更新的计数,但这允许在最坏的情况下快速加载页面:当数据必须从社交网络服务器更新时。
如果您使用 PHP FPM,应在使用 fastcgi_finish_request()
函数 与客户端建立网络连接后调用此方法。
其他社交网络
您可以通过创建一个实现 SocialShare\Provider\ProviderInterface
接口的类来添加对新社交网络的支持。欢迎提交Pull Requests。
他们正在使用PHP SocialShare
致谢
此库由 Kévin Dunglas 和 优秀的贡献者 编写。