2010-10-19 42 views
7

Tìm kiếm google của tôi đã hoàn toàn rời khỏi tôi hoặc hầu như không có bất kỳ tài liệu/hướng dẫn nào cho django-socialregistration. Quá tệ, bởi vì nó có vẻ giống như một ứng dụng đủ tốt. Thông qua một số thử và lỗi, tôi đã quản lý để có được nó chủ yếu là chạy trên trang web của tôi.Kết nối Facebook: thu thập dữ liệu người dùng với django-profiles và django-socialregistration

Câu hỏi của tôi, sử dụng django-socialregistration làm cách nào để xin phép cho tên đầy đủ của người dùng facebook, thành phố hiện tại và ngày tháng năm sinh và lưu nó trong bảng UserProfile của tôi (đó là AUTH_PROFILE_MODULE tôi cho django-cấu hình) trong Django khi đăng ký? Ngoài ra, làm cách nào để đăng lên tường của người dùng từ Django sau khi kết nối được thực hiện?

Hiện tại, khi tôi nhấp vào nút "Kết nối với Facebook", kết nối facebook được tạo, người dùng Django mới được tạo và người dùng đã đăng nhập bằng tài khoản Django đó. Tuy nhiên, không có UserProfile nào được tạo và không có dữ liệu hồ sơ facebook nào được lưu.

Bất kỳ chuyên gia kết nối facebook nào có muốn giúp ngựa Django bay đến Facebookland?

Setup:
- Django 1.2.1
- Python 2.5.2
- django-socialregistration 0.4.2
- django đăng ký 0,7
- django-profiles 0,2

alt text
"Bạn có thể giúp tôi tìm Facebookland huyền diệu không?"

Trả lời

8

Trong facebook_js.html bạn cần phải điều chỉnh dòng sau, bởi uncommenting mục mà bạn cần phải nhận được từ FB:

 FB.login(handleResponse/*,{perms:'publish_stream,sms,offline_access,email,read_stream,status_update,etc'}*/); 

Sau đó, trong FacebookMiddleware bạn có thể trích xuất dữ liệu từ fb_user, như thế này :

 facebook.GraphAPI(fb_user['access_token']).get_object('me') 
+0

Bạn đã thực hiện các Django pony hạnh phúc. Rất vui. – mitchf

+1

Để làm rõ điểm thứ hai của bạn, FacebookMiddleware thêm dữ liệu người dùng facebook vào yêu cầu, vì vậy bạn có thể lấy thông tin hồ sơ của người dùng như vậy: fbuser = request.facebook.graph.get_object ("me"). Sau đó, bạn có thể nhận dữ liệu như tên của người dùng: fbuser ['first_name'], giới tính: fbuser ['gender'] hoặc thành phố/tiểu bang: fbuser ['location'] ['name'] – mitchf

+0

Để đăng bài từ Django lên Facebook: request.facebook.graph.put_object ("me", "feed", message = "Một bài đăng từ Django!") – mitchf

3

FWIW, tôi chỉ thấy điều này nugget vừa hữu ích từ tác giả ứng dụng chôn vùi trong "Vấn đề" trên github:

câu hỏi từ "tolano":

Tôi có một mô hình hồ sơ liên quan đến việc sử dụng, và mọi người dùng được tạo ra hồ sơ cá nhân nên được tạo ra cũng có. Chúng tôi có nên tạo chế độ xem thiết lập tùy chỉnh mới cho mục đích này không?

Tôi đang tìm một số vấn đề vì tài liệu kém. Cảm ơn nhiều.

câu trả lời từ "flashingpumpkin":

Yes. Lý tưởng nhất là bạn sẽ ghi đè chế độ xem thiết lập bằng chế độ xem của riêng bạn. Một phương pháp dễ dàng hơn để điều chỉnh những gì được thực hiện khi tạo người dùng là chuyển biểu mẫu tùy chỉnh vào chế độ xem thiết lập. Bạn sẽ làm điều đó bằng cách ghi đè url chuẩn.

1

Đây là một nugget liên quan (nguồn: http://github.com/flashingpumpkin/django-socialregistration/issues/closed#issue/7) Đủ những điều này và trang này sẽ trở thành thực tế tài liệu de django-socialregistration;)

câu hỏi từ "girasquid":

Có lẽ tôi chỉ thiếu một cái gì đó, nhưng tôi bị kẹt ở đây - có cách nào để 'kết nối' các tài khoản trên các trang web khác với một người dùng đã tồn tại không?

Ví dụ: Tôi đã đăng ký trên trang web thực sự tuyệt vời, vì vậy tôi không cần phải đăng ký lại - nhưng tôi muốn kết nối tài khoản Facebook và Twitter của mình để tôi có thể đăng nhập bằng tài khoản tốt.

Có cách nào để thực hiện việc này không? Nếu không có ... tôi sẽ làm thế nào?

câu trả lời từ "flashingpumpkin":

Có có. Chỉ cần sử dụng các thẻ mẫu giống nhau cho Facebook Connect như bạn muốn đăng ký. Tùy thuộc vào nếu người dùng đã đăng nhập hay không, nó sẽ chỉ tạo đối tượng FacebookProfile và liên kết nó với người dùng hiện có - hoặc tạo cả hai, đối tượng User và đối tượng FacebookProfile.

Có một cái nhìn ở đây:
http://github.com/flashingpumpkin/django-socialregistration/blob/master/socialregistration/templates/socialregistration/facebook_button.html

http://github.com/flashingpumpkin/django-socialregistration/blob/master/socialregistration/templatetags/facebook_tags.py

Các vấn đề liên quan