Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/austinkelleher/giphy-api
🎥 Isomorphic JavaScript client for the Giphy.com API
https://github.com/austinkelleher/giphy-api
gif giphy giphy-api javascript node
Last synced: 6 days ago
JSON representation
🎥 Isomorphic JavaScript client for the Giphy.com API
- Host: GitHub
- URL: https://github.com/austinkelleher/giphy-api
- Owner: austinkelleher
- License: mit
- Created: 2015-07-20T23:41:42.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2021-07-05T11:32:44.000Z (over 3 years ago)
- Last Synced: 2024-11-07T06:17:34.581Z (13 days ago)
- Topics: gif, giphy, giphy-api, javascript, node
- Language: JavaScript
- Homepage:
- Size: 1.68 MB
- Stars: 85
- Watchers: 5
- Forks: 19
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
giphy-api
===========
[![Build Status](https://travis-ci.org/austinkelleher/giphy-api.svg)](https://travis-ci.org/austinkelleher/giphy-api)
![NPM version](https://badge.fury.io/js/giphy-api.svg)JavaScript module for the [giphy.com](http://giphy.com) API that
supports **promises and callbacks**. All search parameters and endpoints can be
found on the [Giphy API documentation](https://developers.giphy.com/docs/).## Installation
```bash
npm install giphy-api --save
```# Browser build
JavaScript browser bundles are built to `dist/giphy-api.bundle.js` and
`dist/giphy-api.bundle.min.js` using:```bash
npm run build
```## Requiring
```javascript
// Require with custom API key
var giphy = require('giphy-api')('API KEY HERE');
// Require with the public beta key
var giphy = require('giphy-api')();
```## Initialization Options
```javascript
var giphy = require('giphy-api')({
...
});
```- https {Boolean} - Whether to utilize HTTPS library for requests or HTTP. Defaults to HTTP.
- timeout {Number} - Maximum timeout of an API request. Defaults to 30 seconds.
- apiKey {String} - Giphy API key. Defaults to API beta key## [Phrase search](https://developers.giphy.com/docs/#operation--gifs-search-get)
Search all Giphy GIFs for a word or phrase. Supported parameters:
- q - search query term or phrase
- limit - (optional) number of results to return, maximum 100. Default 25.
- offset - (optional) results offset, defaults to 0.
- rating - limit results to those rated (y,g, pg, pg-13 or r).
- fmt - (optional) return results in html or json format (useful for viewing responses as GIFs to debug/test)```javascript
// Search with a plain string using callback
giphy.search('pokemon', function (err, res) {
// Res contains gif data!
});// Search with options using promise
giphy.search('pokemon').then(function (res) {
// Res contains gif data!
});
```
```javascript
// Search with options using callback
giphy.search({
q: 'pokemon',
rating: 'g'
}, function (err, res) {
// Res contains gif data!
});
```## [Giphy Id search](https://developers.giphy.com/docs/#path--gifs)
Search all Giphy gifs for a single Id or an array of Id's```javascript
//Search with a single Id using callback
giphy.id('feqkVgjJpYtjy', function (err, res) {});
//Search with a single Id using promise
giphy.id('feqkVgjJpYtjy').then(function (res) {});
```
```javascript
// Search with an array of Id's
giphy.id([
'feqkVgjJpYtjy',
'7rzbxdu0ZEXLy'
], function (err, res) {});
```## [Translate search](https://developers.giphy.com/docs/#path--gifs-translate)
Experimental search endpoint for gif dialects. Supported parameters:
- s - term or phrase to translate into a GIF
- rating - limit results to those rated (y,g, pg, pg-13 or r).
- fmt - (optional) return results in html or json format (useful for viewing responses as GIFs to debug/test)```javascript
// Translate search with a plain string using callback
giphy.translate('superman', function (err, res) {});
// Translate search with a plain string using promise
giphy.translate('superman').then(function (res) {});
```
```javascript
// Translate search with options
giphy.translate({
s: 'superman',
rating: 'g',
fmt: 'html'
}, function (err, res) {});
```## [Random](https://developers.giphy.com/docs/#path--gifs-random)
Random gif(s) filtered by tag. Supported parameters:
- tag - the GIF tag to limit randomness by
- rating - limit results to those rated (y,g, pg, pg-13 or r).
- fmt - (optional) return results in html or json format (useful for viewing responses as GIFs to debug/test)```javascript
// Random gif by tag using callback
giphy.random('superman', function (err, res) {});
// Random gif by tag using promise
giphy.random('superman').then(function (res) {});
```
```javascript
// Random gif with options
giphy.random({
tag: 'superman',
rating: 'g',
fmt: 'json'
}, function (err, res) {});
```## [Trending](https://developers.giphy.com/docs/#path--gifs-trending)
Trending gifs on [The Hot 100](http://giphy.com/hot100) list
- limit (optional) limits the number of results returned. By default returns 25 results.
- rating - limit results to those rated (y,g, pg, pg-13 or r).
- fmt - (optional) return results in html or json format (useful for viewing responses as GIFs to debug/test)```javascript
// Trending Hot 100 gifs using callback
giphy.trending(function (err, res) {});
// Trending Hot 100 gifs using promise
giphy.trending().then(function (res) {});
```
```javascript
// Trending Hot 100 gifs with options
giphy.trending({
limit: 2,
rating: 'g',
fmt: 'json'
}, function (err, res) {});
```## [Stickers](https://developers.giphy.com/docs/#giphy-sticker-api)
[Animated stickers](https://giphy.com/stickers) are gifs with transparent backgrounds. All giphy-api functions
support stickers **except id**, which is not a supported Giphy sticker endpoint.
In order to use the sticker API instead of the gif API, simply pass the ```api```
property to a giphy-api function.
```javascript
// Sticker search using callback
giphy.search({
api: 'stickers',
q: 'funny'
}, function (err, res) {});
// Sticker search using promise
giphy.search({
api: 'stickers',
q: 'funny'
}).then(res) {});
```