2009-05-19 22 views
8

Đây là thỏa thuận:
- Flair khá nhiều nhu cầu ứng dụng Facebook
-I'm làm việc trên học nền tảng FacebookSử dụng OpenID để chứng minh Stackoverflow thành viên

Do đó, tôi đã viết một chút ứng dụng Facebook duyên dáng để nhúng Flair của bạn vào một hộp ở bên cạnh hồ sơ của bạn. If you're interested and on Facebook; hãy cẩn thận rằng điều này là rất nhiều công việc đang tiến hành, dễ bị thay đổi và có một bó toàn bộ các cạnh thô.

Tuy nhiên, tôi không có cách thanh lịch để nói "đây là hồ sơ Stackoverflow của TÔI" từ ứng dụng dinky này. Giải pháp hiện tại của tôi là tốt nhất chứng minh this image. Đó là, thẳng thắn, ngu ngốc; và không có gì ngăn cản mạo danh.

Không có kinh nghiệm với OpenID, tôi tự hỏi nếu có cách nào đó (và một số ví dụ theo cách này, vui lòng) để người dùng cung cấp nhận dạng Stackoverflow của họ cho bên thứ ba?


Hành vi đã thay đổi theo đề xuất của câu trả lời của Noldorin.
Yêu cầu cách an toàn hơn để thực hiện việc này declined on UserVoice.

+0

Tôi nghĩ điều này thuộc về Uservoice? –

+4

Không thực sự, anh ấy tự làm điều này và không yêu cầu SO làm điều đó cho anh ấy. không phải phản hồi hoặc gợi ý cho mỗi lần xem – Malfist

+1

Bạn có yêu cầu "cung cấp OpenID, xác định người dùng SO nào không? Tôi không tin điều này là có thể với kiến ​​trúc hiện tại. Khả năng sử dụng giải pháp hiện tại của bạn có thể được cải thiện bằng cách cho phép người dùng sao chép và dán toàn bộ URL tiểu sử SO thay vì phải cắt chỉ số ID ... không phải là nó tạo ra sự khác biệt lớn. – ephemient

Trả lời

10

Không có cách nào để có được một ID StackOverflow từ OpenID và để làm điều ngược lại sẽ có thể nhưng phức tạp không cần thiết (so với phương pháp được đề xuất của bạn). Việc sao chép và dán URL người dùng/hồ sơ người dùng không quá bất tiện, trong đầu tôi.

Tuy nhiên, tôi có thể đề xuất một số giải pháp cho vấn đề mạo danh. Điều này có vẻ giống như một phương pháp hơi ngớ ngẩn, nhưng đó là cách đơn giản nhất mà tôi có thể nghĩ để đảm bảo rằng chỉ người dùng tự mình mới có thể hiển thị huy hiệu. Một lần nữa, tôi không nghĩ nó quá bất tiện. (Không thể sử dụng phương pháp truyền thống bằng cách sử dụng email xác nhận, vì các email đó không công khai.)

  1. Ứng dụng Facebook của bạn tạo mã ngẫu nhiên (chữ số)? Một cái gì đó trong các hình thức A8IO45QW6T nên làm.
  2. Giữ mã này ở phía máy chủ của ứng dụng Facebook trong một khoảng thời gian ngắn (ví dụ: 5 phút).
  3. Hướng dẫn người dùng chỉnh sửa thông tin Giới thiệu về tôi bằng cách thêm mã đã cho vào dòng cuối cùng, sau đó quay lại Facebook và xác nhận. Kiểm tra đơn giản HTML cho trang hồ sơ của người dùng được chỉ định sẽ xác minh quyền sở hữu. Sau đó, người dùng có thể xóa mã xác minh khỏi văn bản Giới thiệu về tôi của mình.

Bạn nên tạo ứng dụng Facebook này bằng cách này. Tôi chỉ có thể dùng thử!

+0

Tôi sẽ phát xung quanh bằng cách tiếp cận này Một Facebook tinh tế áp đặt trên thiết kế này là mã của tôi (PHP) không được gọi khi một hồ sơ được hiển thị (đẩy mo del), và không có javascript nhúng được chạy cho đến khi người dùng tương tác với hộp (do đó, "bấm để xem danh tiếng" hộp điều). –

+0

@Kevin: Đó là "chế độ đẩy" có vẻ khá lạ. Tôi chắc chắn rằng tôi đã nhìn thấy các ứng dụng Facebook có được xung quanh nó bằng cách nào đó. Bạn không thể thực thi mã trong sự kiện "onload"? – Noldorin

+0

Không. Từ Facebook dev wiki: 'Trong hộp hồ sơ, tập lệnh nội tuyến được hoãn lại cho đến khi sự kiện "hoạt động" đầu tiên được kích hoạt bởi người dùng. Một sự kiện hoạt động được coi là onfocus, onclick, onmousedown, v.v. Về cơ bản, bất kỳ thứ gì yêu cầu nhấp chuột là sự kiện "hoạt động". Bất kỳ thứ gì bạn đặt trên trang Tiểu sử đều bị hạn chế, khi bạn di chuyển đến trang Canvas hoặc Hộp bạn có nhiều linh hoạt hơn. Nó chỉ không có ý nghĩa để gửi Flair bất cứ nơi nào nhưng hồ sơ, không may. –

2

Một giải pháp khác sẽ cho phép xác minh tức thì là băm địa chỉ email và kiểm tra xem địa chỉ đó có phù hợp với Gravatar của người dùng hay không. Cấp, không phải mọi người dùng đã cung cấp địa chỉ email, nhưng bạn luôn có thể thực hiện kiểm tra này trước và nếu không thành công, bạn có thể quay lại phần chỉnh sửa Giới thiệu về tôi (hoặc chỉ yêu cầu người dùng có địa chỉ email). Ý tưởng này không phải của tôi, vì vậy tôi sẽ để null explain:

Bạn vẫn còn nguồn sẵn có chưa? Như tôi đã nhận được một giải pháp để ngăn chặn người dùng khác làm rối tung kết quả của bạn. Bạn chỉ cần băm địa chỉ email mà người xem sử dụng và kiểm tra liên kết hình ảnh gravatar trên trang là outlined on the gravatar site.Nếu id người dùng và băm hình ảnh khớp nhau, sau đó ghi lại thay đổi vào cơ sở dữ liệu, nếu không ... chỉ hiển thị kết quả. Tôi có thể thực hiện thay đổi đó, nhưng nguồn dường như bị mất ... :(

+0

Ngoài ra, email là khá dễ dàng để thần thánh. Ví dụ, email của Jon Skeet có lẽ là '[email protected]'; có thể truy cập bằng hai lần nhấp bắt đầu từ hồ sơ người dùng của anh ấy. Kết hợp điều này với Facebook không cung cấp cơ chế nhận địa chỉ e-mail thô cho người dùng và waaay của nó dễ dàng cho người dùng mạo danh người khác bằng cách sử dụng lược đồ này. * Bạn có thể gửi e-mail cho người dùng bằng cách sử dụng các khóa được xáo trộn kỳ lạ này, là cặp ứng dụng/người dùng và không thể chuyển đổi thành email gốc. –

+0

Đủ rồi. Tôi cho rằng nó phụ thuộc vào mục tiêu của bạn - nếu bạn muốn ai đó có thể ngăn chặn người khác mạo danh tiểu sử SO của họ trên Facebook, tất cả người dùng cần làm là sử dụng địa chỉ riêng và/hoặc duy nhất. Nếu bạn muốn ngăn chặn tất cả mạo danh, bạn sẽ phải sử dụng một hệ thống khác. –

+0

Tôi chắc chắn đang tìm cách ngăn chặn mạo danh. Thêm vào đó, người dùng đã phát tán e-mail gravatar của họ lên bốn góc của internet sẽ trở nên khá khó khăn nếu họ muốn bắt đầu sử dụng một địa chỉ siêu bí mật nào đó, trừ khi tôi thiếu thứ gì đó về cách sử dụng gravatars của Stackoverflow. –