I will clean up the code and will add it to a github fork. Your second comment was the guidance I had been looking for, i.e. common operations should go in the ServiceProviderConnection.
Right now, what we did was to create a SocialAuthApi that is obtained by calling getServiceApi on a SocialAuthProviderConnection. From your comment, I now understand that a better way would be to extend ServiceProviderConnection and incorporate the common functionality. The common functionality we have provided other than updating status and getUser is
a) ability to get contacts (with emails where possible)
b) a common api() method that can be used to send generic requests for example an arbitrary graph API request
c) ability to get Status
I will have a look at the possibility to do these common things in ServiceProviderConnection instead of having a SocialAuthApi. May take a few days to refactor, and will mail you as soon as we are done or face an issue in doing it that way.
Chief Technical Officer