log1x / socialproof
A fluent interface for retrieving follower counts from social API's.
Installs: 1 038
Dependents: 0
Suggesters: 0
Security: 0
Stars: 39
Watchers: 7
Forks: 2
Open Issues: 0
Requires
- php: >=7.0
- guzzlehttp/guzzle: ^6.3
- guzzlehttp/oauth-subscriber: ^0.3.0
This package is auto-updated.
Last update: 2024-07-09 01:44:54 UTC
README
What is SocialProof?
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.
Features
- 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. ❤️
Current Platforms
All pull requests for additional platforms are greatly appreciated. Please use the existing Providers as an example.
Requirements
Installation
Install via Composer:
composer require log1x/socialproof
Usage
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();
Configuration
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();
Debugging
Since SocialProof catches API errors, timeouts, etc. and returns a default value instead, you can use ->setDebug()
to enable debugging during initial setup.