Best way to access get current data from 3rd party service users?

So in my app, I want to have the ability to log in from a number of different services (eg. facebook, google etc.).

I notice that if I create an account using a facebook service, then go into facebook and change my facebook name. When I log in to my app again, my profile data isn’t updated to the new name.

This is because it updates the information in the “services/facebook” part but not in my profile.

So I’m just wondering if I want to show the latest information from the user, what’s the best way to do this is? Do I manually copy all the services data to the profile data when they log in or do I just directly access the data in services?

As the user can be from a host of different services, would I need to do manually cater for every service? Is there a package or option that allows the profile to be automatically updated to the latest service data on logon?