3dgoo/silverstripe-instagram-scraper

An Instagram scraper module for Silverstripe

Installs: 47

Dependents: 0

Suggesters: 0

Security: 0

Stars: 2

Watchers: 2

Forks: 0

Type:silverstripe-vendormodule

1.0.0 2020-06-04 03:49 UTC

This package is auto-updated.

Last update: 2024-12-21 16:15:33 UTC


README

Build Status codecov.io Scrutinizer Code Quality Latest Stable Version Total Downloads Latest Unstable Version License

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 %>