nathancox / silverstripe-social-feed
从Facebook和Twitter获取内容的社交动态模块
Requires
- abraham/twitteroauth: ^0.9.2
- league/oauth2-facebook: ^2.0
- league/oauth2-instagram: ^2.0
- silverstripe/framework: ^4
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,您可以在服务器上设置为cronjob,以确保最终用户永远不需要等待服务器调用API(如Facebook、Twitter等)并更新各种社交动态缓存。
或者,如果您使用的是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/