2013-03-07 8 views
8

私はFacebook SDKファイルをprotected/helpersディレクトリに入れました。そこからYiiアプリケーションのクラスとサードパーティのヘルパーを自動ロードします。Yii FrameworkにFacebook PHP SDKを実装する最善の方法

私のプロジェクトの1つにFacebookログインが含まれていたときに、Yii::app()->paramsを使ってアプリケーション全体のオブジェクトプロパティの継承を実現する、このシンプルで迅速な解決策を思いつきました。

// 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(); 

これにより、私はYii::app()->params['facebook']、設定または設定解除、私のアプリケーション全体で利用可能と私のアプリケーションでは、しかし、私はこれは良い解決策ではないことを信じてないところはどこでもそのように私はFacebookのAPIのSDKにアクセスすることができています。

Facebook API SDKをYiiフレームワークアプリケーションに実装するためのソリューションはありますか?

+2

使用[コンポーネント](http://www.yiiframework.com/doc/guide/1.1/のようにそれを使用することができますen/basics.component)、または[facebook-opengraph](http://www.yiiframework.com/extension/facebook-opengraph)のようないくつかの拡張を見てください。 –

+0

これまではyii-user extensionをインストールしました。 yiiユーザーを拡張する新しいコンポーネントを作成しました。 yii-userを利用してログイントークンを保存することができます。また、私は設定で自分のアプリのキーを保持します。 – aCodeSmith

答えて

0

私はいつもDBに設定変数を保存しようとします。特に秘密鍵が含まれている場合。私はYiiの暗号機能を使用し、dbに格納します。それから私は、そのような設定変数を検索するモデ​​ルを作成します。

第2に、実際の接続作業とは何か、私はそれをCApplicationComponentを拡張するComponentとして配置し、ファイルをextensionsディレクトリまたはcomponentsディレクトリに配置します。それを真の目的にしたいなら。私はヘルパーのアイデアはちょうど緩やかな機能を設定していると思う、主に私は配列や文字列の作業のためのヘルパーを使用します。

6

aa。 FacebookのSDKファイルをダウンロードし、保護/コンポーネントに保管してください/ Facebookは、あなたが呼び出すことができる

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

であなたのconfig/main.phpを編集して、あなたのページからあなたのparamに

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

をAPPID andsecretキーを追加しますこのようなあなたのFacebook SDKは

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

ありがとうありがとうございます。

0

最終的には、Facebook SDKファイルをコンポーザでダウンロードして自動ロードし、SDKをラップするFacebookService拡張CApplicationComponentを作成しました。

だから、メイン設定は

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

のようなもので、あなたが

Yii::app()->facebookService->[method_I_defined] 
関連する問題