An Instagram scraper module for Silverstripe.
$ composer require 3dgoo/silverstripe-instagram-scraper
Import Instagram posts of a certain handle through running the following dev task:
php vendor/silverstripe/framework/cli-script.php dev/tasks/import-instagram-posts handle=<handle>
Sometimes Instagram may require us to log in to fetch this data. This can be done by adding the following to our
.env
file:
INSTAGRAM_USERNAME="<username>"
INSTAGRAM_PASSWORD="<password>"
Once our Instagram posts are imported we can display them with the following code:
PageController.php
use X3dgoo\InstagramScraper\Model\InstagramPost;
class PageController extends ContentController
{
public function InstagramPosts($limit = 10)
{
return InstagramPost::get()
->filter([
'Show' => true,
])
->limit($limit);
}
}
Page.ss
<% if $InstagramPosts %>
<div class="instagram-posts">
<% loop $InstagramPosts %>
<div class="instagram-post">
<a href="{$Link}" target="_blank">
<img src="{$ImageThumbnailURL}" alt="{$Caption.LimitWordCount(20).XML}" />
<div class="caption">
$Caption.LimitWordCount(20)
</div>
</a>
</div>
<% end_loop %>
</div>
<% end_if %>