2012年5月25日金曜日

cakePHPでfacebookアプリをつくる(ログアウト)

facebookが用意してくれているSDKを使う前提です。
ログアウトは下記のように、$facebook->destroySession();として、セッションを削除します。
public function logout(){
        $facebook = $this->createFacebook();
        $facebook->destroySession();
        $this->redirect('/');
}

2012年5月20日日曜日

cakePHPでfacebookアプリをつくる(facebookでログイン)

cakePHPだと普通のPHPのSDKなどがうまく使えなかったりする場合がおます。

facebookはtwitterのapiと比較すると非常に懇切丁寧でありまして、ドキュメントも分かり易ければ実際の操作も非常にお手軽になっているケースが多く、加えてJavascriptだろうがPHPだろうが、スマホネイティブだろうが、なんでもそれに合わせたSDKを用意してくれています。私はPHP特にcakePHPでfacebookからログインできるようなサイトをつくろうと思って調べていたところ、下記ページを発見いたしました。

CakePHPでFacebookにConnect、wallに投稿する機能つくってみました。

これを見て、facebookが用意してくれているSDKを問題なく使えることが分かりました。ただ、「作業手順4.facebook-php-sdkのbase_facebook.phpをすこしいじる。」という記載があったのですが、これもすっとばしてもいけるんじゃないかという適当な予想のもとやってみたらすっとばしてもログイン機能の実装までにおいては問題ございませんでした。メモとしてログイン機能の実装のコードを記載します。

コードの前に、準備作業のポイントも記載します。

2012年5月19日土曜日

Bloggerにtwitter,Facebook「いいね!」,g+,はてブのボタンを設置する方法

下記をコピペして、一番上の行の「ツイッターユーザー名」を自分のユーザー名に変更するだけ。
<a class='twitter-share-button' data-count='horizontal' data-lang='en' data-via='ツイッターユーザー名' expr:data-text='data:title + &quot;: &quot;+ data:post.title' expr:data-url='data:post.url' href='http://twitter.com/share'>Tweet</a>  
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=&quot;//platform.twitter.com/widgets.js&quot;;fjs.parentNode.insertBefore(js,fjs);}}(document,&quot;script&quot;,&quot;twitter-wjs&quot;);</script>

<iframe allowTransparency='true' expr:src='&quot;http://www.facebook.com/plugins/like.php?href=&quot; + data:post.url + &quot;&amp;send=false&amp;layout=button_count&amp;width=450&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font&amp;height=21&quot;' frameborder='0' scrolling='no' style='border:none; overflow:hidden; width:130px; height:21px;'/>

<g:plusone expr:href='data:post.url' size='medium'/>
<!-- この render 呼び出しを適切な位置に挿入してください -->
<script type='text/javascript'>
  window.___gcfg = {lang: &#39;ja&#39;};

  (function() {
    var po = document.createElement(&#39;script&#39;); po.type = &#39;text/javascript&#39;; po.async = true;
    po.src = &#39;https://apis.google.com/js/plusone.js&#39;;
    var s = document.getElementsByTagName(&#39;script&#39;)[0]; s.parentNode.insertBefore(po, s);
  })();
</script>

<a class='hatena-bookmark-button' data-hatena-bookmark-layout='standard' expr:data-hatena-bookmark-title='data:blog.pageTitle' expr:href='&quot;http://b.hatena.ne.jp/entry/&quot; + data:post.url' title='このエントリーをはてなブックマークに追加'>
<img alt='このエントリーをはてなブックマークに追加' height='20' src='http://b.st-hatena.com/images/entry-button/button-only.gif' style='border: none;' width='20'/>
</a>
<script async='async' charset='utf-8' src='http://b.st-hatena.com/js/bookmark_button.js' type='text/javascript'/>

2012年5月6日日曜日

cakePHP1.3 POSTとGETの判別

cakePHPでPOSTとGETを判別するには、下記のようにやるらしい。
if ($this->RequestHandler->isPost()) {
        // POSTの場合
} else {
        // GETの場合
}
当然ながらisGet()という関数も用意されているらしい。

http://my-memolog.blogspot.jp/2011/03/cakephppostget.html