views:

225

answers:

1

I'm using python-openid to successfully connect my python based site with OpenID. It works great with Google and it works with Yahoo! but with Yahoo! the Attribute Exchange doesn't seem to work. I only ever get the email address. firstname, lastname and country is always blank. I know the Yahoo! account (by that email address) has a firstname and lastname defined.

I use these parameters amongst the normal OpenID ones:

    'openid.ns.ax':'http://openid.net/srv/ax/1.0',
    'openid.ax.mode':'fetch_request',
    'openid.ax.required':'firstname,lastname,email,country',
    'openid.ax.type.firstname':'http://axschema.org/namePerson/first',
    'openid.ax.type.lastname':'http://axschema.org/namePerson/last',
    'openid.ax.type.email':'http://axschema.org/contact/email',
    'openid.ax.type.country':'http://axschema.org/contact/country/home',

Searching I found this answer but I'm not familiar with the PHP framework and its use of "counts". There is no such thing in the python-openid framework.

A: 

Hey Peter, I was running into the same issue. Thanks for posting the answer in php, it helped me solve the problem even though I don't know php myself.

The solution is to request only one email from Yahoo! IE: When you add the ax request info, count should be 1 for email. Now they all work perfectly :)