Hybridauth Change log
=====================
2.9.0 - March 24 2017
      New providers: 
        #740 + #741 - Discord
        #737 + #738 - idQ
        #718 - Envato
        #711 + #712 - Stripe
      Fixes:
        #715 - [LinkedIn] Removed unset() which breaks PHP 7.1 compatibility
        #722 - [Core] Add notice about maintainance mode of the library
        #732 - [Amazon] Fix wrong lowercase in filename
        #733 - [Live] Fix authorize_url for windows live
        #735 - [LinkedIn] location feature
        #727 + #734 - [Facebook] Fix problem which occurs during calling the Facebook Graph API to getAccessToken() for a specific redirectUrl
        #729 - [Facebook] Fix wrong country data
        #736 - [Google] Resolve issue in obtaining contacts

2.8.2 - December 9 2016
      Fixes:
        #707 - [Core] OAuth2Client RFC6749 compliant requests (fixes #694)
        #710 - [Core] Fix error message delivery

2.8.1 - December 5 2016
      Fixes:
        #696 - [Core] Passing more arguments in called method
        #697 - [Tumblr] Update posting function
        #703 - [GitHub] Update provider to recognize verified email
        #705 - [Plurk] Update to use https

2.8.0 - October 29 2016
      BREAKING:
        #688 - [Facebook] Update Provider to use newer API version 
        #691 - [Google+] Correct age range
      New providers:
        #673 - Strava
        #682 - Amazon
      New:
        #679 - Allow setting custom start & done endpoints (#680 docs)
        #689 - [LinkedIn] Add current organization and job title to the user profile
        #690 - [Pinterest] Provider updates and new API calls
      Fixes:
        #658 - [Windows Live] Workaround for authentication
        #684 - [Twitter] Set emailVerified
        #685 - [LinkedIn] Remove array shorthand constructor
        #692 - [Tumblr] Use https protocol for tumblr urls

2.7.0 - September 4 2016
      New providers:
        #639 - Humanitarian ID
        #649 - Pinterest
        #653 - Weibo
        #661 - Dataporten
      New:
        #612 - [OAuth2Client][improvement] Be able to specify decode json step per each api call
        #638 - Make use of the redirect mode
        #655 - [OAuth2Client][improvement] Can now make `DELETE` and `PATCH` calls.
        #668 - [LinkedIn] Add ability to set fields
      Fixes:
        #637 - [BitBucket] Fix fetch email
        #610 - Fixes redirect in auth after user pushes the browser back button
        #634 - [Google+] correct age values
        #650 - [Vkontakte] Update URLs and small fixes with reformat
        #656 - [Sina] Remove duplicate expression
        #657 - Fixed issue with empty redirect mode configuration preventing redirection
        #669 - Fix PHP Notice when $_SERVER["QUERY_STRING"] is not defined

2.6.0 - January 12 2016
      New providers:
        #546 + #547 - GitLab OAuth2
        #577 - MixCloud
        #568 + #589 - Digital Ocean
      Updates:
        Updated LightOpenID to 1.2.0
        #572 - Add cURL timeouts for OpenID
        #582 - [Facebook] read_stream removed
        #588 - [BitBucket] Upgrade to OAuth2 protocol and patches
        #607 + #240 - Gzip support added
      Changes:
        #567 - [Odnoklassniki] Get better size of user avatar
        #570 - [odnoklassniki] Improve error reporting
        #571 - [Hybrid_Endpoint] Improve error reporting
        #576 - Improve logging and error handling in main providers
        #598 - Update GitLab API points, fix LastFM typo, refactor file/folder structure stack exchange
      Fixes:
        #575 - [Steam] Fix Steam profileUrl
        #578 - [Odnoklassniki] new link
        #595 - [DigitalOcean] Removing location
        #606 + #607 - [stackexchange] Bugs fixing and improvements

2.5.1 - October 12 2015
      Fixes:
        #542 - [XING] updated provider to 1.1.0
        #549 - Update Auth.php library version
        #558 - [XING] Fix typo
        #559 - [VKontakte] Fix warnings for getUserByResponse() for undefined City and Country
        #560 - [Drupal module] Require OAuth.php only if not exist
        #564 - Fix DateTime error in Logger

2.5.0 - September 7 2015
      New:
        #444 + #445 - Slack provider
        $474 - WarGaming OpenID provider
        #454 - xuite's oauth provider
        #480 - Improved inline documentation for IDE support
        #370 + #495 - [github] getUserContacts() implementation (followers & following)
        #372 + #495 - [instagram] getUserContacts() implementation (follows & followed-by)
        #519 - [Twitter] Add email option to Twitter API
      Fixes:
        #438 + #445 - [LinkedIn] getusercontacts error
        #446 + #447 - [Steam] xml parsing error
        #340 + #476 - Ensure session is saved before sending response
        #472 - [Facebook] Obsolete 'read_friendlists' FB permission was changed to 'read_custom_friendlists'
        #453 - [Vkontakte] fix Undefined property: stdClass::$email
        #499 + #500 - [Facebook] Bug: treating hometown as current location
        #523 - [Draugiem] API does not always return the birthday object
        #525 - [Facebook] Fixes getUserProfile v2.4 compatibility
        #532 + #533 [soundcloud] Provider doesn't implement getUserProfile() and getUserContacts()
        #535 - [Draugiem] API does not always return the birthday object
      Changes:
        #477 - [Vkontakte] Move Vkontakte fields to configuration
        71531f2 - [Facebook] Adding birthday field to be retrieved
      Removed:
        #455 - [Viadeo] Viadeo connect not existing anymore

2.4.1 - April 11 2015
      Fixes:
        #430 - Disable autoloading for class_exists() checks
        #435 + #436 - Google fix Undefined property: stdClass::$emails
        #437 + #442 - OAuth2Client->api() - json_decode

2.4.0 - April 2 2015
      New Providers:
        - BitBucket #405
        - Rhapsody #362
        - Rdio #352
        - SoundCloud #352
        - BeatsMusic #351
        - Dropbox #344 via #367
        - Providers for Citrix #385
        - MailChimp OAuth2 #399
        - Wordpress and Dribbble #394
      New:
        #382 - LinkedIn send direct message
        #388 - Add home town in VKontakte
        #396 + #408 - Make Hybrid_Endpoint methods non-static
        #410 - Set LinkedIn API request timeout to 5 seconds because the API can be slow.
        #419 - Adding emailVerified for Google email type 'account'
        #406 + #425 - Add access token to header in google provider
        #427 - Add class property for responses to be stored
      Fixes:
        #382 - Fix undefined variable in Foursquare
        #379 - Google authentication problem on the master branch (invalid_request, missing parameter) with Drupal 7
        #368 - Correct year and date birth in VKontakte provider
        #228 - HTTP_HOST not found via #366
        #358 - Added abbility get email from vkontakte response
        #363 - Fixed Phpdoc in Rhaspody provider
        #360 - GitHub provider fix: Return primary email address, not the first
        #354 - Hybrid_Providers_Foursquare::getUserContacts() implementation
        #351 - Deezer provider fix
        #296 - OAuth2Client - curl - invalid POSTc
        #395 - Do not replace $_REQUEST with something else
        #412 - Facebook now requires access_token to get coverInfoURL
        #413 - Fix Fatal Error: Declaration of Hybrid_Storage::config() must be compatible with that of Hybrid_Storage_Interface::config()
        #417 - Fixed an issue with email property for vkontakte
        #393 + #420 - Steam API user data support
        #426 - GitHub provider fix: Parameter order incorrect
      Removed:
        - Removed examples (#381, #339, #208)

2.3.0 - November 16 2014
        #87 - Make logging level based
        #102 - Uses Exceptions instead of die() to handle critical problems.
        #247 - Disable autoloading when doing class_exists()
        #111 - Add more informative messages and logging
        #221 - Google Provider: Scopes updated
        #261 - Check if $params is_array
        #265 - OAuth multipart support added
        #266 - Twitter Provider: setUserStatus() message and picture support
        #267 - fixed adapter undefined indexes and illegal string offsets (issues #200 and #105)
        #270 - providers setUserStatus() return status info
        #271 - new: provider::getUserStatus($id) retrieves status info (Facebook and Twitter)
        #272 - facebook::setUserStatus on a user's Page
        #273 - better profile image size for Google and Twitter
        #241 - install.php was deleted
        #291 - updated links in readmes and removed mentions of install.php.
        #294 - Correctly break; when looping on $response->placesLived when a primary location is defined
        #295 - Check for callers URL protocol
        #289 - Added Facebook language locale (#289)
        #293 - Global 'force' configuration option to always request login credentials.
        #298 - Add check for OAuthException class exists
        #301 - getUserContacts gets paged Facebook friends
        #305 - Require wrapper class file only if it is specified
        #306 - fixed E_NOTICE: Undefined index: debug_mode in Logger class
        #310 - GitHub auth: Undefined property: stdClass::$email
        #264 - Yahoo login not returning email address
        #321, #322, #323 - Updated QQ
        #324 - fixed port issue on openid
        #337 - Added email in Live contacts
        #341 - [foursquare] photoURL is not a 'simple' string with the latest service API


2.2.2 - July 11 2014
	      #239 Fixes to Disqus provider, which now works properly (the old one was not working)
	      #234 Error fix for when you don't have friends in G+ and try using getUsersContacts()
        #226 Fixing fatal error in Yammer Provider
        #227 + #229 Github: getUserProfile() does not contain email address fix
        #236 + #237 OAuth1Client: Allow to set a request body and a content type
	      #241 Updates to Install.php
	      #208 Updating and fixing examples
	      #244 OAuth if the class already exists, use the current class
	      #246 Fixing version numbers
        Few small fixes and updates to the examples

2.2.1 - May 26 2014
        #213 - Hotfix for undefined variable
        #215 - Hotfix for BYO Storage Mechanism

2.2.0 - May 24 2014
        New provider: Yammer
        New provider: freeagent.com
        New provider: Drupal OAuth 2
        New provider: PayPal OAuth 2
        New provider: PayPal OpenID
        Removed provider: MySpace
        Fixes and updates to the following providers: Foursquare, Yandex, Disqus, Vkontakte, Steam, Odnoklassniki.ru, LinkedIn, Facebook, Twitter
        Log curl_exec error for failure tracing
        If log file does not exists it will be created
        Typo fixes
        Many other little changes and fixes
        Enabled to have your own storage mechanism #164



2.1.1 - 29 dec 2012
	#59 - Remove OAuth PECL conflict with OAuth PHP Library
	#70 - Update Facebook PHP SDK (v.3.2.2)
	#63 - Minor change to fix getCurrentUrl()
	#73 - Fix misspellings of "authentication" and "valid"; me english bad ;
	#48 + #62 + #71 - Minor change to remove PHP Notices
	#57 - Composer Require CURL
	#53 - Proper handling of LinkedIn user profiles with no telephone numbers
	#64 - Allow restricting google provider to specific domain
	Update Windows Live endpoint URLs (http://msdn.microsoft.com/en-us/library/live/hh243647.aspx)
	Update lightopenid library
	...



2.1.0 - 04 aug 2012
	Yahoo! provider adapter is now based on OAuth1 protocol (by Lukasz Koprowski)
	Windows Live provider adapter is now based on OAuth2 protocol (by Lukasz Koprowski)
	Yahoo! and Google openid based are now part of the "additional providers package"
	Add proxy config for providers API (by fedetorre)
	Fix Hybrid_Providers_Google::getUserContacts()
	Fix Twitter user's profile url
	Fix the user profile url on Hybrid_Providers_Facebook::getUserActivity()



2.0.11 - 25 jan 2012
	Fix a bug with Twitter update status
	Add a way to specify adapters and wrappers from config
	Added emailVerified property to profile object.
	Added ability to pass display type to Facebook SDK.
	Refactored endpoint
	Add user contacts list for Google Hybrid_Providers_Google::getUserContacts()
	Add Hybrid_Auth::getProviders() to return array listing all enabled providers as well as a flag if you are connected.



2.0.10 - 05 dec 2011
	Fix a bug with Facebook update status setUserStatus()
	Fix a bug with linkedin get contacts list getUserContacts()
	Fix refresh token issue with oauth2 client
	Remove https://www.googleapis.com/auth/plus.me from the default Google scope
	Fix an issue with openid identifier verification
	Fix an issue where a user cancel the auth it will persist for some providers
	Another numbers of bug fixes and improvements



2.0.9 - 24 nov 2011
	Move Google to work with OAuth 2 protocol.
	Get back Foursquare and AOL to library core as supported networks
	Add 2 new examples "Sign-in/Sign-up Users" and "Basic Facebook integration"
	Fix a bug with linkedin update status setUserStatus()



2.0.8 - 18 nov 2011
	Add an auto installer to make life a bit easier.
	Change the configuration file name from hybridauth.php to config.php
	Setting facebook scope from the configuration, now override the default requested scope
	Fix a bug with twitter update status setUserStatus()
	Fix a bug with logoutAllProviders()
	Hybrid_Auth_Activity::$date return now a timestamp across supported social networks
	Introduce the refresh_token as its needed for some providers
	fixed some minor issues and improved bunch of other stuff
	Thanks for KVC, RB Lin and danhstevens!



2.0.7 - 12 oct 2011
	Add some generic functions: Hybrid_Provider_Adapter::getUserContacts(), Hybrid_Provider_Adapter::setUserStatus() and Hybrid_Provider_Adapter::getUserActivity() to Facebook, MySpace, Twitter, Identica and LinkedIn.
	Add a generic function to logout all connected provider at once Hybrid_Auth::logoutAllProviders()
	Correct a bug with Hybrid_Auth::getCurrentUrl()
	Split HybridAuth into 2 packages. i) a core library which come with 8 major providers by default, ii) the others one which containt some additional providers
	fixed some minors issues and improved some stuff and whatnot
