goldfinch/social-media

Silverstripe的Facebook/Instagram API (META)集成

安装: 365

依赖: 1

建议: 0

安全: 0

星级: 1

关注者: 1

分支: 0

开放问题: 2

类型:silverstripe-vendormodule

v2.0.3 2024-05-16 03:01 UTC

README

Silverstripe Version Package Version Total Downloads License

Meta

Silverstripe的社会媒体Meta集成。从您的网站上获取并显示Facebook/Instagram帖子作为动态内容。易于自定义。

安装

composer require goldfinch/social-media

1. 创建Meta应用

developers.facebook.com/apps/creation

2. 生成加密密钥

所有来自Meta(ID、密钥、令牌)的敏感数据都在数据库中被加密。因此我们需要一个密钥。您可以使用Taz🌪️模块通过运行CLI命令来生成密钥

php taz generate:encryption-key

或导出辅助函数

LeKoala\Encrypt\EncryptHelper::generateKey();

3. 将密钥保存到.env

ENCRYPTION_KEY={mykey}

4. 设置Facebook动态内容

✅ 确保保存。一切就绪 🎉

要获取长期有效访问令牌,请点击获取按钮或运行/dev/tasks/SocialMediaToken

要获取帖子,请在此页面上点击相同的页面上的同步按钮或转到/dev/tasks/SocialMediaSync

5. 设置Instagram动态内容

✅ 确保保存。一切就绪 🎉

要获取帖子,请在此页面上点击相同的页面上的同步按钮或转到/dev/tasks/SocialMediaSync

定时任务

您可能需要设置定时任务以进行自动化

/dev/tasks/SocialMediaRefresh # refresh token once in 4 weeks
/dev/tasks/SocialMediaSync # once in hour (or as you wish)

用法

Facebook和Instagram帖子混合社交动态内容(按帖子日期排序)

$SocialFeed

仅Facebook动态内容

$SocialFeed.FacebookFeed
$SocialFeed.FacebookFeed(15)

Facebook帖子作为ArrayList

<% loop $SocialFeed.FacebookPosts %>
<% loop $SocialFeed.FacebookPosts(15) %>

仅Instagram动态内容

$SocialFeed.InstagramFeed
$SocialFeed.InstagramFeed(15)

Instagram帖子作为ArrayList

<% loop $SocialFeed.InstagramPosts %>
<% loop $SocialFeed.InstagramPosts(15) %>

模板和修改

要修改模板以满足您的需求,请将它们复制到您的templates文件夹。使用Taz命令,该命令可为您完成此操作

如果您之前没有使用过 Taz🌪️,则必须在您的根项目文件夹中呈现 taz 文件,执行以下命令:cp vendor/goldfinch/taz/taz taz

php taz vendor:social-media:templates

基础块

如果您使用 silverstripe-elemental,此模块包含一个处理社交媒体流的 社交媒体

有用数据

社交媒体链接字段

您也可以使用此模块存储社交媒体链接 社交媒体 > 主

<% with SocialMediaConfig %>
  <% if GeneralFacebook %>
    <a href="{$GeneralFacebookURL}" target="_blank" rel="nofollow">Facebook</a>
  <% end_if %>
  <% if GeneralInstagram %>
    <a href="{$GeneralInstagramURL}" target="_blank" rel="nofollow">Instagram</a>
  <% end_if %>
  <%-- same for Twitter, LinkedIn, YouTube --%>
<% end_with %>

Instagram 字段

caption,id,is_shared_to_feed, media_type,media_url,permalink,thumbnail_url,timestamp,username,children

Facebook 字段

id,actions,admin_creator,allowed_advertising_objects,application,attachments,backdated_time,call_to_action,can_reply_privately,child_attachments,created_time,feed_targeting,from,full_picture,icon,instagram_eligibility,is_eligible_for_promotion,is_expired,is_hidden,is_instagram_eligible,is_popular,is_published,is_spherical,message,message_tags,parent_id,permalink_url,place,privacy,promotable_id,properties,sheduled_publish_time,shares,status_type,story,story_tags,subscribed,targeting,to,updated_time,video_buying_eligibility,likes.summary(total_count),comments.summary(total_count),reactions.summary(total_count)

预览

API 设置

API settings

示例社交媒体流输出

Demo socialfeed

许可

MIT 许可证 (MIT)