3dgoo / silverstripe-instagram-scraper
An Instagram scraper module for Silverstripe
Installs: 47
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 0
Type:silverstripe-vendormodule
pkg:composer/3dgoo/silverstripe-instagram-scraper
Requires
Requires (Dev)
This package is auto-updated.
Last update: 2025-10-21 18:02:31 UTC
README
An Instagram scraper module for Silverstripe.
Requirements
Installation (with composer)
$ composer require 3dgoo/silverstripe-instagram-scraper
Usage
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 %>