nathancox/silverstripe-social-feed

从Facebook和Twitter获取内容的社交动态模块

安装: 590

依赖: 0

建议: 0

安全: 0

星星: 1

监视者: 2

分支: 16

类型:silverstripe-vendormodule

2.15.3 2019-02-23 02:05 UTC

This package is not auto-updated.

Last update: 2024-09-17 04:42:18 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,您可以在服务器上设置为cronjob,以确保最终用户永远不需要等待服务器调用API(如Facebook、Twitter等)并更新各种社交动态缓存。

或者,如果您使用的是QueuedJobs模块,此过程将自动为您处理,因为已设置队列作业每10分钟更新缓存。

要求

SilverStripe 4或更高版本

Twitter

Twitter数据是用户最近发布的推文的集合。以下API端点使用https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=twitterapi

Twitter API用户时间线文档

凭证

您需要在此处创建Twitter应用https://apps.twitter.com/app/

Facebook

返回的Facebook数据是给定Facebook页面的最新帖子。以下API端点使用https://graph.facebook.com/PAGE_ID/feed?access_token=ACCESS_TOKEN

Facebook API文档

凭证

要获取必要的Facebook API凭证,您需要创建一个Facebook应用

Instagram

用户最近发布的媒体。以下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/