sfMelodyPluginを試す その1

※注意 この記事は現在調査を進めながら記述していますので、完全な情報ではありません。

Symfony1.4 で連携しようと思ってたどり着いた sfMelodyPlugin
Symfony1.4 の使用方法も間々ならないままにplugins/sfMelodyPlugin ディレクトリにインストール。中にある英語のREADME.txt を読んでみる。
一般的には下記のコマンドでインストールできるようだが、PEARが効かない環境なので一式配置。

[code]
$ php symfony plugin:install sfMelodyPlugin
[/code]

キャッシュをクリアして、

[code]
$ php symfony cc
[/code]

sfMelody を settings.yml に設定する。
ちなみに、Doctrine使用の場合、sfDoctrineOAuthPlugin sfDoctrineGuardPlugin が必要らしい。
sfMelody と同様に pluginsディレクトリに配置した。

[code]
all:
.settings:
enabled_modules: [default, sfGuardAuth, sfMelody]
[/code]

適用するアプリケーションにあるmyUser.class.php の継承元を変更する。
apps/my-app/lib/myUser.class.php:

[code]
class myUser extends sfMelodyUser
//class myUser extends sfBasicSecurityUser
{
}
[/code]

app.yml を設定する。

[code]
all:
melody:
create_user: false # 対象サービス(twitter等)に接続した時にログオンできない場合新規作成するかどうか
redirect_register: false # 登録画面にリダイレクトするかどうか
twitter: #name
key: my_service_key # twitter で発行されたコンシューマー・キー(API key)を記述
secret: my_secret_key # twitter で発行されたコンシューマー・シークレットを記述
callback: @mymodule_index # コールバックURLを記述

#オプション (↓↓↓↓↓調査中↓↓↓↓↓↓)
user: # to create an user
field_1:
call: xx
call_parameters: [x, x, x]
path: xx.xy.zz
prefix: xx_
suffix: _xx
key: false

provider: twitter #対象サービス名 (他google / facebook等)
request_token_url: https://api.twitter.com/oauth/request_token # リクエスト・トークンURL
request_auth_url: https://api.twitter.com/oauth/authorize #URLを許可する
access_token_url: https://api.twitter.com/oauth/access_token #アクセス・トークンURL

# (↓↓↓↓↓調査中↓↓↓↓↓↓)
namespaces: # namespaces are used to make some api calls – see namespace Section
ns1: http://my.name.space

aliases: # Alias is an easy way to simplify api calls
me: my/alias

auth_parameters:
param1: value
call_parameters:
param1: value
access_parameters:
param1: value
output_format: json
create_user: true
redirect_register: false

#optional only for OAuth 1
request_parameters:
param1: value
request_token_url: https://api.twitter.com/oauth/request_token # リクエスト・トークンURL
[/code]

まだ何もわからないまま、アプリケーションを実行してみる。呼び出すべき actions.class に接続のアクションメソッド(executeIndex)とCallbackを受けるアクションメソッド(executeShow)を記述。

[php]
public function executeIndex(sfWebRequest $request)
{
$this->getUser()->connect(‘twitter’); //nameで指定した名前
}
public function executeShow(sfWebRequest $request)
{
$this->me = $this->getUser()->getMelody(‘twitter’)->getMe();
}
[/php]

それに伴いrouting.yml も設定する。

[code]
twitter_callback:
url: /:module
param: { action: show }
[/code]

すると、何やら sfOAuth1 が見つからないとのエラー。実際のファイルが sfDoctrineOAuthPlugin に無いのかなと予測したらやはり無い。どうやら OAuthBase のモジュールが別途必要なようだ。急いでダウンロードしたらこのエラーは無くなった。

しかし次のエラー

[code]
Fatal error: Call to undefined function curl_init()
[/code]

どうやらphpにて、cURLが有効になっていない模様。
php.ini で同モジュールを有効にしてApacheの再起動したらtwitterページにリダイレクトできました。

エラー画面なので連携とまではいけませんでした。
まだまだ、完全な連携には程遠いのですがちょっと感動です。

続きは後日・・・。

■参考サイト
Symfohub

This entry was posted in php, symfony, twitter, 技術情報. Bookmark the permalink.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です