Skip to main content
Community Plugin
View plugin on GitHub
See starters using this

gatsby-source-giphy-random

This is a fork of @jiyeonseo’s source plugin for pulling data into Gatsby from Giphy’s trending API, slightly altered to pull from Giphy’s random API instead. You can also supply a specific tag to pull random images from.

Prerequisites

Install

npm install --save gatsby-source-giphy-random

How to use

// In your gatsby-config.js
plugins: [
  {
    resolve: 'gatsby-source-giphy-random',
    options: {
      api_key: '',
      rating: 'G',
      tag: 'pixel art',
    },
  },
],

Supporting .env files

It’s good practice to keep your keys in .env files like .env.development and .env.production. Node variables seem to only get pulled in by Gatsby when there’s a GATSBY_ prefix, so like so:

GATSBY_GIPHY_API_KEY=636869706d757369632e666d

You can then use Gatsby’s built-in dotenv module in your gatsby-config.js, pulling everything together like so:

require('dotenv').config({
  path: `.env.${process.env.NODE_ENV}`,
});

module.exports = {
  plugins: [
    {
      resolve: 'gatsby-source-giphy-random',
      options: {
        api_key: process.env.GATSBY_GIPHY_API_KEY,
        rating: 'G',
        tag: 'pixel art',
      },
    },
  ],
};

This way you can exclude the .env files when committing, and keep your secret API keys… secret. ;)

Options

api_key (REQUIRED)

The API key from Giphy Developer Dashboard.

rating (OPTIONAL)

Filters results by rating.

  • Y
  • G
  • PG
  • PG-13
  • R

tag (OPTIONAL)

Specifies that the random image should come from a specific tag.

How to query

{
  giphyGif {
    id
    image_url
  }
}