8

Facebook SDK ファイルをprotected/helpersディレクトリに配置し、そこから Yii アプリケーションのクラスとサードパーティ ヘルパーを自動ロードします。

私のプロジェクトの 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 Framework アプリケーションに実装するためのより良いソリューションはありますか?

4

3 に答える 3

6

Y A。Facebook SDK ファイルをダウンロードし、protected/components/Facebook に保管してから、config/main.php を次のように編集します。

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

パラメータにappidとsecretキーを追加します

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

あなたのページから、このようにFacebook SDKを呼び出すことができます

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

ありがとうございました。

于 2014-04-29T04:49:42.887 に答える
0

ちょっと遅くなりましたが、最終的には Facebook SDK ファイルを composer でダウンロードし、オートロードして、SDK をラップする CApplicationComponent を拡張する FacebookService を作成しました。

したがって、主な構成は次のようになります

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

そして、あなたはそれを次のように使うことができます

Yii::app()->facebookService->[method_I_defined]
于 2014-07-01T19:52:48.500 に答える
0

私は常に構成変数をDBに保存しようとします。特に秘密鍵が関係している場合。Yii の crypt 機能を使用して、db に保存します。次に、そのような構成変数を取得するモデルを作成します。

第二に、実際の接続作業とあなたが持っているものに関しては、それを CApplicationComponent を拡張するコンポーネントとして配置し、ファイルを extensions ディレクトリまたは components ディレクトリに配置します。あなたがそれを真のオブジェクトにしたい場合。ヘルパーのアイデアは単なる緩い関数のセットだと思います。ほとんどの場合、配列と文字列の作業にヘルパーを使用します。

于 2013-04-10T14:30:25.420 に答える