2010-06-27 43 views
12

Tôi đang gặp sự cố khi cố gắng kết nối trang web của mình với Facebook. Những gì tôi muốn nó làm là cho phép người dùng tăng thêm tài khoản của họ bằng cách kết nối chúng với Facebook (tôi không cần mọi người có thể đăng nhập bằng Facebook, tôi đang sử dụng OpenID thay thế). Trang web của tôi chạy trong khuôn khổ CodeIgniter.Thêm Facebook Kết nối với trang web CodeIgniter

Điều tôi sẽ làm là xóa mọi thứ tôi đã thử và hướng dẫn bạn qua các bước của tôi cho đến khi nó ngừng hoạt động.

Bước 1: Thiết lập SDK JavaScript và XFBML

Trước tiên tôi thêm một tham chiếu đến spec FBML để <html> thẻ của tôi:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xml:lang="en" lang="en"> 

Sau đó, sau khi thẻ <body> của tôi, tôi thêm :

<script src="http://static.new.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php" type="text/javascript"></script> 

Bây giờ, đây là vấn đề đầu tiên tôi có but have now solved. Vấn đề là các tài liệu cho JavaScript SDK nói rằng phương thức FB.init()requires the appId là một tham số, nhưng điều này hóa ra là không chính xác. Tôi cần phải vượt qua apiKey của tôi để thay thế. Vì vậy, đây là đoạn code mà tôi đã kết thúc với, mà đi trước thẻ </body> tôi:

<div id="fb-root"></div> 
<script src="http://connect.facebook.net/en_US/all.js"></script> 
<script> 
    FB.init({ 
     apiKey : '<?php echo $this->config->item('facebook_api_key'); ?>', 
     status : true, 
     cookie : true, 
     xfbml : true 
    }); 

</script> 

Bây giờ tôi có thể thêm các đối tượng XFBML vào các trang web của tôi, chẳng hạn như <fb:login-button></fb:login-button> mà chỉ hoạt động như mong đợi. Tôi nhấp vào nó và nó bật lên một hộp hỏi nếu tôi muốn cho phép trang web của tôi để truy cập vào hồ sơ Facebook của tôi. Tôi nói có, và sau đó nếu tôi kiểm tra cài đặt ứng dụng của tôi trong Facebook, tôi có thể thấy rằng trang web của tôi đã được thêm vào.

Vì vậy, bước này hoạt động tốt.

Bước 2: Thiết lập các thư viện PHP

Được rồi, vì vậy bây giờ tôi cần phải thêm thư viện PHP. Vì vậy, một tìm kiếm google nhanh chóng cho 'thư viện facebook codeign' tiết lộ Elliot Haughin's library. Tôi tải xuống các tệp, đặt tất cả chúng vào đúng nơi rồi tải xuống thư viện.

Hiện tại, sự cố hiện tại xảy ra. Tôi thêm đoạn mã sau (lấy từ ví dụ đưa ra với thư viện) để xây dựng bộ điều khiển của tôi để nó xảy ra trên mỗi trang:

$this->load->library('facebook_connect'); 
$this->data['fb_user'] = $this->facebook_connect->user; 
$this->data['fb_userid'] = $this->facebook_connect->user_id; 

Nhưng nếu tôi làm print_r($this->data['fb_user']); Tôi nhận được gì. Không bao giờ. Cho dù tôi đã đăng nhập vào facebook, đăng xuất, đăng nhập và thêm trang web của tôi vào tiểu sử của tôi, v.v. v.v. Người dùng và user_id chưa bao giờ được đặt. Tôi không nhận được bất kỳ lỗi nào.

Theo như tôi biết, các giá trị được cho là phải được đặt để tôi biết liệu người duyệt trang web của tôi có đăng nhập vào tài khoản facebook của họ hay không. Nếu có, tôi có thể xem liệu họ có cho phép ứng dụng của tôi không. Nếu họ đã cho phép, tôi có thể để họ ngắt kết nối khỏi trang web của tôi, nếu không, tôi có thể cho phép họ kết nối. Nhưng tôi không thể làm bất cứ điều gì nếu các biến này không được phổ biến.

Tôi đã thử poking xung quanh bên trong nguồn của thư viện, nhưng tôi thực sự không thể có được đầu của tôi xung quanh nó. Và tôi hy vọng rằng giải pháp thực tế cho việc này sẽ không liên quan đến việc hack thư viện. Tôi mong đợi một thư viện cụ thể CodeIgniter để làm việc.

Bất kỳ ý tưởng nào?

Cảm ơn rất nhiều. :)

+0

Facebook có php-sdk chính thức hoạt động tốt bên trong codeigniter ... http: // jondavidjohn.com/b/P – jondavidjohn

Trả lời

2

Hãy thử this Facebook Library bởi Danny Tran được lưu trữ trên Github. Công trình kỳ diệu và khá dễ dàng để có được thiết lập.

1

Bạn đã thêm tệp xd_reciever vào thư mục công khai của mình chưa ????

Probabiliy điều này có thể gây ra sự cố bcoz xd_reciever deifine kênh giữa ứng dụng của bạn với facebook.

2

Các liên kết này có thể giải quyết mọi sự cố lập trình trên facebook của bạn.

http://developers.facebook.com/docs/authentication/

http://net.tutsplus.com/tutorials/php/how-to-authenticate-your-users-with-facebook-connect/

http://realfoot.com/facebook_connect/login_page.php

Facebook Login Button: Can I prevent auto page reload after login?

Codeignitor, Facebook javascript SDK, PHP SDK Redirect after facebook login doesnt getUser() until refresh

http://www.braintilt.com/fbcookies.php

http://www.permadi.com/blog/2011/02/facebook-authenticationlogin-process-in-popup-or-not/

http://developers.facebook.com/docs/reference/javascript/FB.login/

http://ottopress.com/wordpress-plugins/simple-facebook-connect/

http://devtacular.com/articles/bkonrad/how-to-integrate-with-facebook-connect/

http://developers.facebook.com/docs/guides/web/

http://www.1stwebdesigner.com/tutorials/facebook-integrate/

http://worldpointx.com/2009/05/authentication-rot/

https://github.com/facebook/php-sdk/

http://www.justin-klein.com/projects/wp-fb-autoconnect

http://en.kioskea.net/forum/affich-12130-problems-connecting-to-facebook

http://en.kioskea.net/s/Cannot+login+on+website+using+facebook+login

http://www.google.com/support/forum/p/Chrome/thread?tid=310bc994b12d2750&hl=en http://www.google.com/support/forum/p/Chrome/thread?tid=310bc994b12d2750&hl=en

http://moodle.org/mod/forum/discuss.php?d=142036

http://www.webtechnick.com/blogs/view/229/CakePHP_Facebook_Plugin_Auth_Facebook_and_more

+2

Trong khi liên kết này có thể trả lời câu hỏi, tốt hơn nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo. Câu trả lời chỉ liên kết có thể trở thành không hợp lệ nếu trang được liên kết thay đổi. - [Từ đánh giá] (/ đánh giá/bài đăng chất lượng thấp/18783148) –

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