I would like to use OpenID (PHP and LightOpenID) to get the following user information:
$openid->required = array(
'namePerson',
'namePerson/first',
'namePerson/last',
'contact/email',
'person/guid',
'birthDate/birthYear',
'birthDate/birthMonth',
'birthDate/birthday',
'gender',
);
However, I found that both Yahoo and Google return only the following data:
Array ( [namePerson] => abc [contact/email] => abc@example.com )
Is there something wrong with my code? Can I force Google and Yahoo to return all the data I want?
Google and Yahoo OpenID implementations both respect the "required" in Attribute Exchange, but not all the attributes you're looking for. Here are their respective documentations listing what attributes their schema supports.
https://developers.google.com/accounts/docs/OpenID#Parameters
http://developer.yahoo.com/blogs/ydn/yahoo-openid-now-attribute-exchange-7795.html