2011-07-12 30 views
11

Tôi đang cố sử dụng DotNetOpenAuth cho một số chức năng đăng nhập một lần trên web.DotNetOpenAuth và Facebook

Tôi nhận mẫu làm việc cho Google và Yahoo nhưng đang gặp khó khăn với Facebook.

Tôi đang sử dụng CTP (4.0.0.11165) và đã làm theo ví dụ trong this SO question.

Tuy nhiên, tôi nhận được một lỗi thời gian chạy trên dòng:

IAuthorizationState authorization = client.ProcessUserAuthorization(); 

Lỗi này là:

Không thể lấy access token. Máy chủ ủy quyền báo cáo lý do: (không rõ)

Bất kỳ ý tưởng nào?

Trả lời

13

Bản dựng bạn đang sử dụng không tương thích với Facebook vì Facebook đang sử dụng thông số cũ hơn về OAuth 2.0. Bạn phải sử dụng CTP trước đó (một phiên bản có phiên bản v3.5) để làm việc với Facebook. Lấy làm tiếc. Nó stinks được sử dụng OAuth 2.0 khi tất cả mọi người là trên một dự thảo khác nhau của spec specinalized.

+0

Tôi đã tải về ctp và không thể tìm thấy mẫu để fb trong đó? tôi có nhánh chính và nó. nhưng bạn nói họ sẽ không làm việc. Tôi có nên mong đợi để xem mẫu trong ctp cho fb? – iwayneo

+0

Ngoài ra, nếu tôi sử dụng phiên bản ctp này, tôi sẽ tìm thấy chính mình ở một nơi xa hơn nữa xuống dòng? fb đang có kế hoạch sắp xếp phù hợp với mọi người ở một thời điểm nào đó không? – iwayneo

+0

Tôi không thể nói cho Facebook, nhưng tôi chỉ có thể tưởng tượng rằng họ sẽ áp dụng phiên bản cuối cùng của OAuth 2.0 khi nó (cuối cùng) được hoàn thành. Phiên bản trước đó của CTP DNOA mà interop với FB không bao gồm một mẫu facebook, có. –

0

Tôi đang gặp sự cố tương tự khi sử dụng https://github.com/baio/open-mvc.

Tôi đã giải quyết nó bằng cách xây dựng lại dự án DotNetOpenAuth.ApplicationBlock của CTP mới nhất (4.0.0.11165) với phiên bản DotNetOpenAuth 3.5.0.10357 được tải xuống từ repo mvc mở.

Và nó hoạt động tốt cho facebook.

tôi vẫn đang thử nghiệm nó cho khác của IDP

0

Tôi nghĩ rằng bạn cần phải thêm

client.ClientCredentialApplicator = ClientCredentialApplicator.PostParameter("App_Secret"); 
Các vấn đề liên quan