Skip to content

Facebook/Instagram API (META) integration, Social Feed for Silverstripe

License

Notifications You must be signed in to change notification settings

goldfinch/social-media

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ¦… Social Feed, Facebook, Instagram API for Silverstripe

Silverstripe Version Package Version Total Downloads License

Meta

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

βœ… 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

βœ… 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

API settings

Demo social feed output

Demo socialfeed

License

The MIT License (MIT)

About

Facebook/Instagram API (META) integration, Social Feed for Silverstripe

Resources

License

Stars

Watchers

Forks

Packages

No packages published