goldfinch/socialkit
Composer 安装命令:
composer require goldfinch/socialkit
包简介
Facebook/Instagram API (META) integration for Silverstripe
关键字:
README 文档
README
Social media Meta Integration for Silverstripe. Fetch and display Facebook/Instagram posts as a feed on your website. Easy to customize.
Install
composer require goldfinch/social-media
1. Create Meta App
developers.facebook.com/apps/creation
2. Generate encryption key
All sensitive data that comes from Meta (ID,secret,tokens) are being encrypted in the database. Therefore we need a key. You can generate it using Taz🌪️ module by running CLI command:
php taz generate:encryption-key
or dumping helper function
LeKoala\Encrypt\EncryptHelper::generateKey();
3. Save the key in .env
ENCRYPTION_KEY={mykey}
4. Set up a Facebook Feed
-
Open Social media admin module that comes with this package
/admin/social-mediaand navigate to Settings > API -
Enable Facebook API (checkbox)
-
Set up the following fields:
-
App ID
Go to developers.facebook.com/apps/MYAPPID/settings/basic
Get App ID
-
App Secret
Go to developers.facebook.com/apps/MYAPPID/settings/basic
Get App secret
-
Page ID
Go to www.facebook.com/MYPAGE/about_profile_transparency
Page transparency reveals Page ID
-
Access Token
Go to developers.facebook.com/tools/explorer
Select Meta App, User Token, with
pages_manage_postspermission and Generate Access Token -
Fields: developers.facebook.com/docs/graph-api/reference/v18.0/page/feed#readfields
See all fields that you can copy and paste here
-
Limit:
Set post limit (for sync),
10
-
✅ Make sure to Save it. All set to go 🎉
To get Long-Lived Access Token click Get button or run /dev/tasks/SocialMediaToken
To fetch posts, run the task by clicking the Sync button on the same page or jump on /dev/tasks/SocialMediaSync
5. Set up an Instagram Feed
-
Open Social media admin module that comes with this package
/admin/social-mediaand navigate to Settings > API -
Enable Instagram API (checkbox)
-
Set up the following fields:
-
App Secret
Go to developers.facebook.com/apps/MYAPPID/instagram-basic-display/basic-display
Get Instagram App Secret
-
Long-Lived Access Token
Go to developers.facebook.com/apps/MYAPPID/instagram-basic-display/basic-display
Get Get token (User Token Generator) - Add or Remove Instagram Testers
-
Fields: developers.facebook.com/docs/instagram-basic-display-api/reference/media/#fields
See all fields that you can copy and paste here
-
Limit:
Set post limit (for sync),
10
-
✅ Make sure to Save it. All set to go 🎉
To fetch posts, run the task by clicking the Sync button on the same page or jump on /dev/tasks/SocialMediaSync
Cron tasks
You might want to set up cron tasks for automation
/dev/tasks/SocialMediaRefresh # refresh token once in 4 weeks /dev/tasks/SocialMediaSync # once in hour (or as you wish)
Usage
Mixed social feed with Facebook & Instagram posts (sorted by post date)
$SocialFeed
Facebook feed only
$SocialFeed.FacebookFeed $SocialFeed.FacebookFeed(15)
Facebook posts as ArrayList
<% loop $SocialFeed.FacebookPosts %> <% loop $SocialFeed.FacebookPosts(15) %>
Instagram feed only
$SocialFeed.InstagramFeed $SocialFeed.InstagramFeed(15)
Instagram posts as ArrayList
<% loop $SocialFeed.InstagramPosts %> <% loop $SocialFeed.InstagramPosts(15) %>
Templates and modifications
To modify templates for your needs, copy them into your templates folder. Use Taz command that does that for you
If you haven't used Taz🌪️ before, taz file must be presented in your root project folder cp vendor/goldfinch/taz/taz taz
php taz vendor:social-media:templates
Elemental Block
If you use silverstripe-elemental, this module comes with Social Media block that handles social feeds for you
Useful data
Social link fields
You can also store social links with this module Social media > Main
<% 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 fields
caption,id,is_shared_to_feed, media_type,media_url,permalink,thumbnail_url,timestamp,username,children
Facebook fields
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)
Previews
API settings
Demo social feed output
License
The MIT License (MIT)
goldfinch/socialkit 适用场景与选型建议
goldfinch/socialkit 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 752 次下载、GitHub Stars 达 3, 最近一次更新时间为 2023 年 07 月 17 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「facebook」 「instagram」 「silverstripe」 「meta」 「social-media」 「instagram-silverstripe」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 goldfinch/socialkit 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 goldfinch/socialkit 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 goldfinch/socialkit 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Handles basic OAuth/OAuth2 authentication along with classes for common services
Craft CMS plugin to receive Instagram feed data as variable in templates.
Simple Sharing generates social media share links within CP entry pages, allowing you to quickly & easily share entries.
Analytics chooser extensions for site settings.
An easy-to-use PHP Class for accessing Instagram's API.
统计信息
- 总下载量: 752
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 3
- 点击次数: 8
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-07-17

