SocialProof is a fluent interface for fetching followers / fans from various social media platforms using their internal API. It handles all API requests asynchronous using Guzzle and catches API exceptions / errors with a user-definable default value.
- Simple, fluent syntax for handling credentials / configuration.
- Completely asynchronous using Guzzle's
getAsync()
. - User-definable default values when an API request fails.
- Simple debugging when configuring.
- Automatically handles OAuth when fetching from API's such as Twitter.
- Easily extendable and all PR's are very welcome. ❤️
All pull requests for additional platforms are greatly appreciated. Please use the existing Providers as an example.
Install via Composer:
composer require log1x/socialproof
SocialProof is incredibly easy to use, but caching values and storing them appropriately to not hit API limits / affect performance is up to the end-user. For WordPress, an example would be using the Transients API with an expiration of every 24 hours and the Options API for a fallback value along with ->setDefault()
in the event an API request fails after your transient expires.
use SocialProof\SocialProof;
return SocialProof::social()
->facebook()
->setUsername('example')
->setToken('XXXXXXXXXXXXXXXXXXXXXXXX')
->get();
See here to generate a token for Facebook.
use SocialProof\SocialProof;
return SocialProof::social()
->twitter()
->setUsername('username')
->setConsumerKey('XXXXXXXXXXXXXXXXXXXXXXXX')
->setConsumerSecret('XXXXXXXXXXXXXXXXXXXXXXXX')
->setToken('XXXXXXXXXXXXXXXXXXXXXXXX')
->setTokenSecret('XXXXXXXXXXXXXXXXXXXXXXXX')
->get();
use SocialProof\SocialProof;
return SocialProof::social()
->instagram()
->setToken('XXXXXXXXXXXXXXXXXXXXXXXX')
->get();
use SocialProof\SocialProof;
return SocialProof::social()
->pinterest()
->setUsername('username')
->get();
use SocialProof\SocialProof;
return SocialProof::social()
->linkedin()
->setUsername('username')
->setToken('XXXXXXXXXXXXXXXXXXXXXXXX')
->get();
SocialProof::social()
accepts various configuration when passing through your social credentials. Here's an example using Facebook:
use SocialProof\SocialProof;
return SocialProof::social()
->facebook()
->setUsername('example')
->setToken('XXXXXXXXXXXXXXXXXXXXXXXX')
->setDefault('No followers')
->setApi('https://graph.facebook.com')
->setEndpoint('/v2.7/')
->setTimeout(60)
->setDebug()
->get();
A long form syntax is also available for passing credentials and configuration through an array using setCredentials($array)
and setConfigs($array)
or a string using setCredential($key, $value)
and setConfig($key, value)
.
use SocialProof\SocialProof;
return SocialProof::social()
->facebook()
->setCredentials([
'username' => 'example',
'token' => 'XXXXXXXXXXXXXXXXXXXXXXXX'
])
->setConfig('default', 'No Followers')
->get();
Since SocialProof catches API errors, timeouts, etc. and returns a default value instead, you can use ->setDebug()
to enable debugging during initial setup.