2011-02-13 33 views

Trả lời

1

Có, bạn phải sử dụng cuộc gọi api, vì nó không được mã hóa trong mã thông báo truy cập hoặc bất kỳ thông tin nào khác được chuyển đến một ứng dụng.

Nếu mối quan tâm là hiệu suất, bạn có thể nhớ cache kết quả.

+0

Tôi sẽ lưu bộ nhớ cache ở đâu? Lưu trữ cục bộ? – ma11hew28

+0

'' 'window.localStorage.setItem ('facebook', JSON.stringify (response));' '' – Alastair

0

Gọi điện api đồ thị tốt để gọi để nhận được User tên đầu tiên. Bạn cũng có thể truy vấn bảng User để nhận tên người dùng. Nó phụ thuộc vào bạn bạn thích cái gì?

1

Bạn có thể sử dụng FB.api như sau

function fqlQuery(){ 
     FB.api('/me', function(response) { 
       var query = FB.Data.query('select name,email,hometown_location, sex, pic_square from user where uid={0}', response.id); 
       query.wait(function(rows) { 
       uid = rows[0].uid; 
       document.getElementById('name').innerHTML = 
        'Your name: ' + rows[0].name + "<br />" + 
        'Your email: ' + rows[0].email + "<br />" + 
        'Your hometown_location: ' + rows[0].hometown_location + "<br />" + 
        'Your sex: ' + rows[0].sex + "<br />" + 
        'Your uid: ' + rows[0].uid + "<br />" + 
        '<img src="' + rows[0].pic_square + '" alt="" />' + "<br />"; 
       }); 
     }); 
    } 
11
FB.api('/me', function(response) { 
    $('#name').html("Welcome " + response.name); 
}); 

Đó là tất cả bạn cần.

+6

Nếu bạn muốn tên đầu tiên, nó phải là 'response.first_name', không phải' response.name' –

+3

@ Cảm ơn Super Chafouin nhưng response.first_name đã không được xác định. –

0

SDK javascript mà Facebook cho phép bạn lấy tên, họ (không yêu cầu quyền đặc biệt), lịch sử giáo dục và nhiều hơn nữa mà tiểu sử người dùng Facebook có. Tuy nhiên, để có được thông tin 'nhạy cảm', người dùng phải chấp thuận ứng dụng của bạn (nếu họ chưa có) và sau đó chấp nhận thông tin 'nhạy cảm' như lịch sử giáo dục. Trang tại http://www.virtualsecrets.com/facebook-user-data-on-webpage-form.html hiển thị toàn bộ quá trình làm việc với SDK javascript và một số thông tin về cách thiết lập ứng dụng với trang web.

2

Thuộc tính firstname và lastname không được trả về bởi FB JS SDK yêu cầu API đăng nhập nữa. Điều này đã thay đổi đôi khi giữa ver. 2.2 (06/2014) và 2.5 (01/2015).

Lý do đằng sau là, yêu cầu đăng nhập đó chỉ trả về các thuộc tính có sẵn công khai, là fbidtên. Tên và họ không phải là thuộc tính có thể truy cập công khai và yêu cầu quyền do người dùng cấp. See here.

Chúng tôi sử dụng một "đoán workaround" - nếu thuộc tính tên có hơn 1 từ, chúng ta chia chúng thành firstnamelastname thuộc tính, hoặc cư firstname từ tên. Tốt hơn/dễ dàng hơn trong một số trường hợp hơn là làm phiền người dùng có quyền, kiểm tra phản hồi, gọi lại, v.v.

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