isaacrankin / silverstripe-social-feed
用于从Facebook和Twitter获取内容的社交动态模块
Requires
- abraham/twitteroauth: ^0.9.2
- league/oauth2-facebook: ^2.0
- league/oauth2-instagram: ^2.0
- silverstripe/framework: ^4
This package is not auto-updated.
Last update: 2023-05-22 06:17:44 UTC
README
将Facebook、Twitter和Instagram的社交媒体帖子合并成一个单独的动态。每个动态也可以单独使用。
安装
composer require isaacrankin/silverstripe-social-feed
使用
<% include SocialFeed %>
或者,您可以直接调用SocialFeed
方法,如下所示
<div class="social-feed">
<ol>
<% loop SocialFeed %>
<li>
<a href="$URL" target="_blank">
<h4>Type: $Type</h4>
<p>Created: $Created</p>
<p>User: $UserName</p>
<p><img src="$Image" /></p>
<p>$Content</p>
</a>
</li>
<% end_loop %>
</ol>
</div>
帖子按时间顺序从新到旧排序。
在SocialFeed
控制循环中,以下值可用
$URL
- 社交媒体帖子的URL$Type
- 帖子类型,可以是"facebook"、"twitter"或"instagram"$Created
- 帖子的创建/发布日期$UserName
- 发布帖子的用户$Image
- 帖子的主图片$Data
- 单个帖子的所有数据,以API返回的原始结构形式。请阅读API文档以了解可用信息。
缓存
所有SocialMediaProvider::getFeed()调用都被缓存15分钟,可以通过CMS清除或在开发者模式下追加?socialfeedclearcache=1来清除。
还有一个SocialFeedCacheTask,您可以在服务器上将其设置为cron作业,以确保最终用户永远不会因为您的服务器需要向Facebook、Twitter等API调用并更新各种社交动态缓存而等待。
另外,如果您使用的是QueuedJobs模块,此过程将自动为您处理,因为已设置排队作业每10分钟更新缓存。
要求
SilverStripe 4或更高版本
Twitter数据是用户发布的最新的推文集合。以下API端点被使用 https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=twitterapi
凭证
您需要在此处创建Twitter应用 https://apps.twitter.com/app/
返回的Facebook数据是给定Facebook页面的最新帖子。以下API端点被使用 https://graph.facebook.com/PAGE_ID/feed?access_token=ACCESS_TOKEN
凭证
要获取必要的Facebook API凭证,您需要创建一个Facebook应用。
用户发布的最新媒体内容。以下API端点被使用https://api.instagram.com/v1/users/self/media/recent/?access_token=ACCESS_TOKEN
Instagram API文档中的最近用户媒体
凭证
要获取必要的Instagram API凭证,您需要创建一个Instagram客户端。
您需要在Instagram应用的设置中添加正确的重定向URI,例如http://yoursite.com/admin/social-feed/SocialFeedProviderInstagram/