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>


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

0 件のコメント:

コメントを投稿