ラベル facebook application の投稿を表示しています。 すべての投稿を表示
ラベル facebook application の投稿を表示しています。 すべての投稿を表示

2010/09/25

symfony+sfFacebookPluginでfacebookアプリを構築してみる XFBML編

symfonyがインストールできたので、
次はsymfonyのfacebookプラグインを使ってみようと思う。

2010年9月現在、symfonyのfacebookプラグインは3つくらいある。

  • sfFacebookConnectPlugin
  • sfFacebookPlatformPlugin
  • sfForkedFacebookConnectPlugin
このうちのsfFacebookConnectPlugin
プラグインを使ってみる。


sfFacebookConnectPluginをインストールする

pluginディレクトリにインストールする。

READMEどおり、インストールする。

http://www.symfony-project.org/plugins/sfFacebookConnectPlugin/1_0_0/readme_as_source


cd plugins/
svn co http://svn.symfony-project.com/plugins/sfFacebookConnectPlugin/trunk sfFacebookConnectPlugin

app.ymlを編集。
api_id, api_key,api_secretなどを指定する

app.yml
all
  facebook:
    api_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    api_secret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    api_id: xxxxxxxxxxxxxxx
    redirect_after_connect: false
    redirect_after_connect_url: 
    app_url: http://apps.facebook.com/xxxxxxxx/
    guard_adapter: ~
    js_framework: jQuery

settings.ymlでsfFacebookConnectAuthを有効にする。
all:
  enabled_modules: [default, sfFacebookConnectAuth]

php symfony cc
php symfony plugin:publish-assets
>> plugin    Configuring plugin - sfPropelPlugin
>> plugin    Configuring plugin - sfProtoculousPlugin
>> plugin    Configuring plugin - sfFacebookConnectPlugin

OK!
それでは、一応動作確認をしてみます。

適当にどこかのactions.class.phpでfacebook uidを取得してみる。
仮にmodule:vote, action:indexとする。

apps/xxxx/module/vote/actions/actions.class.php
$uid = sfFacebook::getAnyFacebookUid();
var_dump($uid);
自分のuidが表示されたらOK!
時々、一発で表示されないことがあるので、F5とか連打してみる。


XFBMLをつかって自分の写真をだしてみる。



apps/xxxx/module/vote/actions/actions.class.php

$this->uid = sfFacebook::getAnyFacebookUid();

apps/xxxx/module/vote/templates/indexSuccess.php
<fb:profile-pic uid="<?php echo $uid ;?>" size="normal" width="400" />


apps/xxxx/templates/layout.php
<?php use_helper('sfFacebookConnect')?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
  <head>
    <?php include_http_metas() ?>
    <?php include_metas() ?>
    <?php include_title() ?>
    <link rel="shortcut icon" href="/favicon.ico" />
  </head>
  <body>
    <?php echo $sf_content ?>
    <?php echo include_facebook_connect_script() ?>
  </body>
</html>


ブラウザで確認してみる。
お、自分のプロフィールの写真が表示されてる!うふふ。

symfony+sfFacebookPluginでfacebookアプリを構築してみる

Symfony+sfFacebookPluginでfacebookアプリを構築してみるよ!


.....はい。

ここ2、3日、めちゃめちゃハマっています。
せっかくの休みなのに、いったい何してるんでしょ、アテクシ。
さて、大好物のホタテ貝柱を食べながらモチベーションを維持しつつ、
がんばりましょー。


まず、symfonyをインストールする


  • php-pearのインストール
  • yum install -y pear
  • PEARライブラリを最新にする
  • pear upgrade PEAR
    

    あとで起こられるのでこちらも先に入れておく。

    yum install -y php-xml
    
  • symfonyのチャンネルを追加
  • pear channel-discover pear.symfony-project.com
    
  • symfonyをインストールする
  • pear install symfony/symfony

    動作確認しておく

    symfony -v
    

    だがしかし!後述するsfFacebookConnectPluginのインストールにあたり、 ここで大事なミスを犯していた。何も考えずに、現時点で最新版のsymfony1.4.4をインストール していたのだが、symfony1.2.9を指定してインストール必要があった。sfFacebookConnectPluginはsymfony1.2までしか サポートしていなかったのだ!

  • バージョンを指定してsymfonyをインストールする
  • pear install symfony/symfony-1.2.9
    



symfonyでつまづいたところ


ごちゃごちゃいろいろやっているとたまにうまくインストールできないことがある。
そんなときは、仕切りなおして、アンインストールしてから、インストールに挑戦してみる。


# エラーがでてインストールできない(; ;)
Package "symfony" Version "1.2.9" does not have REST xml available
install failed

# symfonyのアンインストール
pear uninstall symfony/symfony

# pearのチャネルも削除
pear channel-delete pear.symfony-project.com

# pearチャネルの追加
pear channel-discover pear.symfony-project.com

# symfonyのインストール
pear install symfony/symfony

おしゃ。


次は、sfFacebookConnectPluginをインストールして、使ってみるよ!