Awesome Open Source
Awesome Open Source

network-avatar-picker

A npm module that returns a user's avatar from his social networks as Buffer or as URL. You can choose among Facebook, Twitter, Instagram, Tumblr, Vimeo, Github, Gmail and Youtube provider. Then, you just need to pass a username without the need of token or API keys and retrieve user's social network profile picture!

npm version Build Status Coverage Status

Supported Providers

  • Facebook
  • Github
  • Gmail
  • Instagram
  • Tumblr
  • Twitter
  • Vimeo
  • Youtube

Getting Started

Installing

First, install network-avatar-picker as a dependency:

npm install --save network-avatar-picker

Usage

Basic configuration

You should require the dependency in order to be able use it:

const NetworkAvatarPicker = require('network-avatar-picker');
const avatarPicker = new NetworkAvatarPicker();

Cache configuration using Redis

In 1.4.0 we have introduced support to cache results with Redis! Just pass redis config as param to the NetworkAvatarPicker and it will create a new redis client. Then, we will store the images and avatar's URL to redis.

const NetworkAvatarPicker = require('network-avatar-picker');
const avatarPicker = new NetworkAvatarPicker({
  redis: {
    host: '127.0.0.1', // required
    port: '6379', // required
    password  : 'your password',    // optional: replace with your password
    ttl: 3600, // optional: Add your expiration caching time in seconds. Default value: 3600
  }
});

This way we create a local Redis client with expiration caching time 3600sec.

Methods

Use the async methods of the avatarPicker instance to fetch user avatars:

A) getAvatar: Fetch avatar image as Buffer

  • avatarPicker.facebook.getAvatar(username)
  • avatarPicker.twitter.getAvatar(username)
  • avatarPicker.instagram.getAvatar(username)
  • avatarPicker.tumblr.getAvatar(username)
  • avatarPicker.vimeo.getAvatar(username)
  • avatarPicker.github.getAvatar(username)
  • avatarPicker.youtube.getAvatar(username)
  • avatarPicker.gmail.getAvatar(email)

B) getAvatarUrl: Fetch avatar image as URL

  • avatarPicker.facebook.getAvatarUrl(username)
  • avatarPicker.twitter.getAvatarUrl(username)
  • avatarPicker.instagram.getAvatarUrl(username)
  • avatarPicker.tumblr.getAvatarUrl(username)
  • avatarPicker.vimeo.getAvatarUrl(username)
  • avatarPicker.github.getAvatarUrl(username)
  • avatarPicker.youtube.getAvatarUrl(username)
  • avatarPicker.gmail.getAvatarUrl(email)

Examples

  1. Fetch twitter's cnn user profile picture:

Buffer:

(async () => {
    try {
      const res = await avatarPicker.twitter.getAvatar('cnn');
    } catch (e) {
      // Deal with the fact the chain failed
    }
})();

URL:

(async () => {
    try {
      const res = await avatarPicker.twitter.getAvatarUrl('cnn');
    } catch (e) {
      // Deal with the fact the chain failed
    }
})();
  1. Fetch facebook's zuck user profile picture:

Buffer:

(async () => {
    try {
      const res = await avatarPicker.facebook.getAvatar('zuck');
    } catch (e) {
      // Deal with the fact the chain failed
    }
})();

URL:

(async () => {
    try {
      const res = await avatarPicker.facebook.getAvatarUrl('zuck');
    } catch (e) {
      // Deal with the fact the chain failed
    }
})();
  1. Fetch instagram's cnn user profile picture:

Buffer:

(async () => {
    try {
      const res = await avatarPicker.instagram.getAvatar('cnn');
    } catch (e) {
      // Deal with the fact the chain failed
    }
})();

URL:

(async () => {
    try {
      const res = await avatarPicker.instagram.getAvatarUrl('cnn');
    } catch (e) {
      // Deal with the fact the chain failed
    }
})();

Running the tests

In order to run tests you have to run:

npm run tests

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
javascript (70,829
nodejs (3,858
github (770
image (505
youtube (393
twitter (347
instagram (278
facebook (276
social-network (161
node-module (67
avatar (49
npm-module (48
buffer (46
vimeo (42
tumblr (28
avatar-generator (16