2013-03-07 21 views
8

Tôi đã đặt các tệp Facebook SDK vào thư mục protected/helpers, từ đó tôi tự động tải các lớp và người trợ giúp bên thứ 3 cho Ứng dụng Yii của tôi.Cách tốt nhất để triển khai Facebook PHP SDK vào Yii Framework

Khi một trong các dự án của tôi liên quan đến Đăng nhập Facebook, tôi đã đưa ra giải pháp đơn giản và nhanh chóng này, sử dụng Yii::app()->params để đạt được sự kế thừa của thuộc tính đối tượng trong suốt ứng dụng.

// don't mind this $facebook variable, it's just a shortcut in this method 
Yii::app()->params['facebook'] = $facebook = new Facebook(array(
    'appId' => '148966221932337', 
    'secret' => 'a52ce7b4a0cd5d517c6ada53fc77cde7', 
    'cookie' => true, 
)); 

$user = $facebook->getUser(); 

Qua đó, tôi có Yii::app()->params['facebook'], đặt hoặc unset, có sẵn trong suốt ứng dụng của tôi và theo cách mà tôi có thể truy cập vào API SDK Facebook bất cứ nơi nào trong ứng dụng của tôi, tuy nhiên tôi luôn tin rằng đây không phải là một giải pháp tốt.

Có bất kỳ giải pháp nào tốt hơn để triển khai SDK API Facebook vào Ứng dụng khung của Yii không?

+2

Sử dụng [Linh] (http://www.yiiframework.com/doc/guide/1.1/ vi/basics.component) hoặc xem xét một số tiện ích mở rộng, như [facebook-opengraph] (http://www.yiiframework.com/extension/facebook-opengraph) –

+0

Trong quá khứ tôi đã cài đặt tiện ích mở rộng người dùng yii và sau đó tạo ra một thành phần mới mở rộng yii-user. Bạn có thể tận dụng người dùng yii để lưu trữ mã thông báo đăng nhập. Ngoài ra tôi giữ phím ứng dụng của tôi trong cấu hình. – aCodeSmith

Trả lời

0

Tôi luôn cố lưu các biến cấu hình trong DB. Đặc biệt là nếu họ liên quan đến một khóa bí mật. Tôi sẽ sử dụng chức năng mã hóa của Yii và lưu trữ nó trong db. Sau đó, tôi sẽ tạo mô hình xung quanh truy xuất các biến cấu hình như thế. Thứ hai theo như công việc kết nối thực tế và những gì có bạn, tôi sẽ đặt đó như là một thành phần mở rộng CApplicationComponent, và đặt tệp trong thư mục tiện ích mở rộng hoặc thư mục thành phần. Nếu bạn muốn biến nó trở thành một đối tượng thực sự. Tôi nghĩ ý tưởng của người trợ giúp chỉ là một tập hợp một chức năng lỏng lẻo, chủ yếu là tôi sử dụng những người trợ giúp cho công việc chuỗi và chuỗi.

6

Ya. tải file Facebook SDK và Giữ nó trong bảo vệ/components/Facebook sau đó chỉnh sửa cấu hình của bạn/main.php với

'import'=>array(  //autoloading model and component classes 
    'application.models.*', 
    'application.components.*', 
    'application.components.Facebook.*', 
), 

và thêm khóa andsecret APPID trong param

'params'=>array(
    'Facebook'=>array( 
     'appId' => '148966221932337', 
     'secret' => 'a52ce7b4a0cd5d517c6ada53fc77cde7', 
     'cookie' => true, 
    ), 
); 

của bạn Từ bạn trang web mà bạn có thể gọi SDK Facebook của bạn như thế này

$facebook = new Facebook(Yii::app()->params['Facebook']); 
$user_id = $facebook->getUser(); 

cảm ơn bạn.

0

Loại trễ, nhưng tôi đã tải xuống các tệp Facebook SDK với nhà soạn nhạc, tự động tải chúng và tạo một CAPlicationComponent mở rộng của FacebookService bao bọc SDK.

Vì vậy, các cấu hình chính là như

'facebookService'=>array(
      'class' => 'FacebookService', 
      'appId' =>'xxxxxxxxxxx', 
      'appSecret' => 'xxxxxxxxxx', 
      'extendedAccessToken' => "xxxxxxxxxx", 
     ), 

và bạn có thể sử dụng nó như

Yii::app()->facebookService->[method_I_defined] 
Các vấn đề liên quan