2011-07-12 21 views
11

Estoy intentando utilizar DotNetOpenAuth para algunas funcionalidades de inicio de sesión único web.DotNetOpenAuth y Facebook

Obtuve las muestras que funcionan para Google y Yahoo, pero estoy luchando con Facebook.

Estoy usando el CTP (4.0.0.11165) y he seguido el ejemplo en this SO question.

Sin embargo, me sale un error de ejecución en la línea:

IAuthorizationState authorization = client.ProcessUserAuthorization(); 

El error es:

No se ha podido obtener el token de acceso. Motivo de informes del servidor de autorización: (desconocido)

¿Alguna idea?

Respuesta

13

La compilación que está utilizando no es compatible con Facebook porque Facebook usa una especificación anterior de OAuth 2.0. Tienes que usar un CTP anterior (uno con una versión v3.5) para trabajar con Facebook. Lo siento. Apesta usar OAuth 2.0 cuando todos están en un borrador diferente de la especificación no finalizada.

+0

he descargado el CTP y no puedo encontrar muestras para fb ahí? tengo la rama principal y lo hace. pero dices que no funcionarán. ¿Debo esperar ver muestras en el ctp para fb? – iwayneo

+0

Además, si uso esta versión ctp, ¿me encontraré en un lugar extraño más adelante? ¿están planificando llegar en línea con todos los demás en algún momento? – iwayneo

+0

No puedo hablar por Facebook, pero solo puedo imaginar que adoptarán la versión final de OAuth 2.0 cuando se finalice (finalmente). La versión anterior del DNOA CTP que interopera con FB sí incluye una muestra de Facebook, sí. –

0

Estaba enfrentando un problema similar al usar https://github.com/baio/open-mvc.

Lo resolví volviendo a construir el proyecto DotNetOpenAuth.ApplicationBlock de Latest CTP (4.0.0.11165) con DotNetOpenAuth versión 3.5.0.10357 descargado del repositorio open-mvc.

Y funcionó bien para facebook.

Todavía estoy probando para otra IDP de

0

Creo que es necesario agregar

client.ClientCredentialApplicator = ClientCredentialApplicator.PostParameter("App_Secret"); 
Cuestiones relacionadas