2010-04-27 27 views
7

Tôi đang cố triển khai Kết nối Facebook trên một trang web. Tôi đang cố gắng làm việc với Javascript SDK của Facebok. Tôi mới đến nó và tiếc là hầu hết các liên kết được cung cấp trong Facebook WIKI đã lỗi thời ... Không tìm thấy 404 không tìm thấy. Dù sao tôi đã thêm mã này trước khi kết thúc </body>:Lỗi khóa API trong Kết nối Facebook (javascript sdk)

<script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" type="text/javascript"></script> 
<div id="fb-root"></div> 
<script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php" type="text/javascript"> </script> 
<script src="http://connect.facebook.net/en_US/all.js"></script> 
<script> 
    FB.init({ 
    appId : '12344', // my real app id is here 
    status : true, // check login status 
    cookie : true, // enable cookies to allow the server to access the session 
    xfbml : false // parse XFBML 
    }); 

    FB.login(function(response) { 
    if (response.session) { 
    if (response.perms) { 
     alert('user is logged in and granted some permissions'); 
     // user is logged in and granted some permissions. 
     // perms is a comma separated list of granted permissions 
    } else { 
     alert('user is logged in, but did not grant any permissions'); 
     // user is logged in, but did not grant any permissions 
    } 
    } else { 
     alert('user is not logged in'); 
    // user is not logged in 
    } 
}, {perms:'email'}); 
</script> 

Và tôi có một nút đăng nhập tại một số nơi khác (nhiều trước các kịch bản ở trên) trong cùng một trang diễn tả với:

<fb:login-button v="2">Connect with Facebook</fb:login-button> 

Nút này hiển thị như một nút kết nối fb bình thường và nhấp vào nó sẽ mở ra một cửa sổ popup mới như bình thường. Vấn đề là nó cho thấy lỗi 'api key được chỉ định không hợp lệ'. Khi kiểm tra thanh địa chỉ của cửa sổ bật lên, tôi thấy rằng api_key = undefined được chuyển cho nó: (

Bất kỳ ý tưởng nào về điều này? Tôi đang cố gắng khắc phục sự cố này trong 5 giờ qua ... Vui lòng giúp tôi tìm hiểu lý do tại sao API chính xác điều quan trọng là không được thông qua để bật lên cửa sổ.

Cảm ơn trước.

Trả lời

4

tôi đang làm điều tương tự, và tôi tìm thấy một ví dụ rất đơn giản để thực hiện và hiểu (ở đây sử dụng thể thay jQuery, nhưng bạn có thể làm tương tự mà không cần thư viện):

<body> 
    <div> 
    <button id="login">Login</button> 
    <button id="disconnect">Disconnect</button> 
    </div> 
    <div id="user-info" style="display: none;"></div> 

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 

    <div id="fb-root"></div> 
    <script src="http://connect.facebook.net/en_US/all.js"></script> 
    <script> 
    // initialize the library with the API key 
    FB.init({ appId : '12344' }); 

    // fetch the status on load 
    FB.getLoginStatus(handleSessionResponse); 

    $('#login').bind('click', function() { 
     FB.login(handleSessionResponse); 
    }); 

    $('#disconnect').bind('click', function() { 
     FB.api({ method: 'Auth.revokeAuthorization' }, function(response) { 
     clearDisplay(); 
     }); 
    }); 

    // no user, clear display 
    function clearDisplay() { 
     $('#user-info').hide('fast'); 
    } 

    // handle a session response from any of the auth related calls 
    function handleSessionResponse(response) { 
     // if we dont have a session, just hide the user info 
     if (!response.session) { 
     clearDisplay(); 
     return; 
     } 

     // if we have a session, query for the user's profile picture and name 
     FB.api(
     { 
      method: 'fql.query', 
      query: 'SELECT name, pic FROM profile WHERE id=' + FB.getSession().uid 
     }, 
     function(response) { 
      var user = response[0]; 
      $('#user-info').html('<img src="' + user.pic + '">' + user.name).show('fast'); 
     } 
    ); 
    } 
    </script> 
</body> 

Lo ok here cho toàn bộ mã và here bạn có thể tìm thấy tài nguyên khác.

+0

Cảm ơn sự giúp đỡ của Kucede. Tôi đã có thể loại bỏ (yea, thực sự) dự án của tôi bằng cách sử dụng lớp FB.Connect cũ. Thật mỉa mai là điều này mà tài liệu FB Dev có chứa một tập hợp các mã cũ + mới, mà không có bất kỳ gợi ý về phiên bản nào mà tài liệu đó thuộc về ... Thực sự đây là tài liệu khủng khiếp nhất mà tôi từng thấy trong đời. Tôi đánh giá cao sự giúp đỡ của bạn mặc dù. Có thể tôi sẽ cần phải sử dụng điều này nếu tôi đi qua một dự án tương tự trong tương lai. –

1

Bạn cần đặt url đăng bài canvas ủy quyền và đảm bảo rằng url canvas nền tảng là tiền tố của url đăng quyền.

3

Tôi đã đặt địa chỉ kết nối facebook của mình để có www và tôi đã truy cập trang web thử nghiệm của mình với không www, khi tôi chuyển sang phiên bản www fb kết nối hoạt động tốt.

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