This class can authorize the access of users to an API using the OAuth protocol.
It abstracts OAuth 1.0, 1.0a and 2.0 in the same class, so you can use the same obtain a token to authorize the access on behalf of the current user any API that supports any version of the OAuth protocol.
It provides built-in support to several popular OAuth servers, so you do not have to configure the class manually with all OAuth server specific details.
Currently it provides built-in support for OAuth servers of Bitbucket, Box.net, Dropbox, Eventful, Facebook, Fitbit, Flickr, Foursquare, github, Google, Instagram, LinkedIn, Microsoft, RightSignature, Scoop.it, StockTwits, Tumblr, Twitter, XING and Yahoo.
Every other OAuth server is supported setting end point URLs and other parameters using specific class variables.
The class can also send requests to API using the previously obtained OAuth access token.
It also supports 2 legged API access, so it can send signed API requests that do not require user authorization.
For servers that support offline access like Google and Box.net, the class can also verify if the access token expired and refresh the token value before sending an API call, without requiring the user presence.