2012-06-10 35 views
5

Tôi đang sử dụng Facebook Connect cùng với API biểu đồ Facebook để tìm nạp địa chỉ email của người dùng khi họ đăng ký trang web của tôi. Điều này hoạt động hoàn hảo trên 99% thời gian nhưng đôi khi tôi truy vấn Graph API cho dữ liệu của người dùng sau khi họ đã cho phép trang web của tôi, bao gồm cả quyền email, Facebook trả về một số lớn (ví dụ 14036774009) làm địa chỉ email của người đó.Số API trả về biểu đồ Facebook thay vì địa chỉ email

Cho đến nay, các số luôn khác nhau và luôn có 11 chữ số và tất cả dữ liệu người dùng khác từ Graph API là hợp lệ. Tôi chưa bao giờ có thể tái tạo vấn đề này với một tài khoản Facebook mà tôi kiểm soát.

Trong một số cách, số lượng lớn nhắc tôi về địa chỉ email proxy ngẫu nhiên mà Facebook tạo cho những người chọn cung cấp cho ứng dụng bên thứ ba địa chỉ chuyển tiếp thay vì địa chỉ chính của họ (địa chỉ proxy trông giống như sau: ứng dụng + [email protected]mail.facebook.com)

Bất cứ ai có thể giải thích hành vi này hoặc cách khắc phục (và luôn nhận địa chỉ email hợp lệ)?

Trả lời

2

Đó là lỗi. Đã được báo cáo lên Facebook:

https://developers.facebook.com/bugs/298946933534016

Dường như với thể xảy ra ngay cả khi sử dụng đồ thị nhà thám hiểm - https://developers.facebook.com/tools/explorer, nhưng chỉ cho một số người dùng. Trong trường hợp của tôi khoảng 0,2% thời gian.

Vì vậy, cho đến khi nó là cố định bạn có 2 lựa chọn:

  • Nếu Facebook mang đến cho bạn một giá trị email xấu, hãy yêu cầu người dùng nhập/email của mình bằng tay.
  • Lưu mã thông báo truy cập dài và thử lại định kỳ để xem bạn có nhận lại đúng email không.
0

Bạn vẫn đang sử dụng hộp thoại xác thực cũ bằng cách nào đó? Khả năng cung cấp địa chỉ email proxy chỉ trong hộp thoại xác thực cũ

+0

Đây là cách tôi khởi tạo và gọi FB JS SDK để kích hoạt đăng nhập. Tôi đã cập nhật điều này vài tháng trước để hỗ trợ hệ thống dựa trên đăng nhập OAuth mới nếu đó là ý của bạn. FB.init ({appId: '...', trạng thái: false, cookie: true, oauth: true, xfbml: false, channelUrl: "..."}); FB.login (chức năng (phản hồi) {...}, {scope: 'email'}); – scyclops

0

Điều này xảy ra với những người đăng ký Facebook bằng số điện thoại di động của họ và số được trả về chỉ là vậy.

Không có tùy chọn để truy cập địa chỉ email của người dùng vì anh ấy chưa thể đưa nó vào Facebook.

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