0.1.8 • Published 9 years ago

multi-avatar v0.1.8

Weekly downloads
1
License
MIT
Repository
github
Last release
9 years ago

MultiAvatar - a nice way to fetch avatars

Build Status GitHub issues David David GitHub license


This library allows you to get user avatar URLs from various social-networks without diving into their APIs.

Supported providers

  • Facebook
  new FacebookAvatarProvider('FacebookUserID')
  • Google
  new GoogleAvatarProvider('GoogleUserID')
  • Twitter
  new TwitterAvatarProvider('TwitterUsername') // without '@', e.g. 'IGN' or 'pcgamer'
  • Vkontakte
  new VkAvatarProvider('VkID')

Installation

npm install multi-avatar

How to fetch user avatar URL

Some services forces us to make a API-requests. This is why library uses Promises (any-promise) and URLs caching. (Caching works only if you use the same instance of AvatarProvider between avatar requests)

import multiAvatar, { FacebookAvatarProvider, GoogleAvatarProvider } from 'multi-avatar'; // ES7
// or
var multiAvatar = require('multi-avatar'),
  FacebookAvatarProvider = multiAvatar.FacebookAvatarProvider,
  GoogleAvatarProvider = multiAvatar.GoogleAvatarProvider;


// Basic using:
multiAvatar(new FacebookAvatarProvider('100008343750912')) // ID should be always a string, because it can be larger, than Number.MAX_VALUE
  .withSize(64)
  .then(function (avatars) {
    console.log('URL:', avatars.facebook); // URL: https://graph.facebook.com/.../picture?width=64
  });


// Fetching multiple avatars from different providers
multiAvatar([
  new FacebookAvatarProvider('100008343750912'),
  new GoogleAvatarProvider('116933859726289749306')
])
  .withSize(512)
  .then(function (avatars) {
    console.log(avatars);
    // Output:
    // {
    //   facebook: 'https://graph.facebook.com/100008343750912/picture?width=512',
    //   google: 'https://lh3.googleusercontent.com/-t4mT2nC4NkI/AAAAAAAAAAI/AAAAAAAAAAA/4DSxgN3cZmY/s512-c/116933859726289749306.jpg'
    // }
  });


// Fetching several sizes of avatar
multiAvatar([
  new FacebookAvatarProvider('100008343750912')
])
  .withSizes([64, 120]) // Note "s" at the end
  .then(function (avatars) {
    console.log(avatars);
    // Output:
    // {
    //   facebook: {
    //      '64': 'https://graph.facebook.com/100008343750912/picture?width=64',
    //      '120': 'https://graph.facebook.com/100008343750912/picture?width=120'
    //   }
    // }
  });


// Fetching several sizes of avatar from several providers
multiAvatar([
  new FacebookAvatarProvider('100008343750912'),
  new GoogleAvatarProvider('116933859726289749306')
])
  .withSizes([50, 150])
  .then(function (avatars) {
    console.log(avatars);
    // Output:
    // {
    //   facebook: {
    //     '50': 'https://graph.facebook.com/100008343750912/picture?width=50',
    //     '150': 'https://graph.facebook.com/100008343750912/picture?width=150'
    //   },
    //   google: {
    //     '50': 'https://lh3.googleusercontent.com/-t4mT2nC4NkI/AAAAAAAAAAI/AAAAAAAAAAA/4DSxgN3cZmY/s50-c/116933859726289749306.jpg',
    //     '150': 'https://lh3.googleusercontent.com/-t4mT2nC4NkI/AAAAAAAAAAI/AAAAAAAAAAA/4DSxgN3cZmY/s150-c/116933859726289749306.jpg'
    //   }
    // }
  });

  // Error handling:
  multiAvatar(new GoogleAvatarProvider('non_exists_user'))
    .withSize(64)
    .then(function (avatars) {
      console.log(avatars);
      // {
      //   google: null
      // }
    });

NOTE: only google and vk can return null, because they depends on JSON-request, so we can determine, that user is not exists. Other providers just return broken image or something like that.

Contribute

  1. Fork it!
  2. Create new branch: git checkout -b my-new-feature
  3. Commit changes: git commit -m 'Add new feature'
  4. Push it: git push origin my-new-feature
  5. Submit a pull request!
0.1.8

9 years ago

0.1.7

10 years ago

0.1.6

10 years ago

0.1.5

10 years ago

0.1.4

10 years ago

0.1.3

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago