カテゴリー : プログラム

FacebookページとTwitterとブログ(WordPressなど)の連携について

最近ちょっとお仕事でFacebookページについて調べており、Facebookページのカスタマイズの勉強もかねてPICxPICのFacebookページを作り込んだりしてみました。

ブログ、Facebook、Twitter、mixi…と、いまではソーシャルメディアの種類は多岐にわたり、あれもやってこれもやってでさぁ大変!という感じですね。

出来ればある程度情報は自動で同期させて人間の手間をはぶきたいですよね。いちいちブログで投稿したURLを短縮化してコピペしてTwitterとFacebookのウォールに投稿して、とか大変ですもんね。

というわけで、今回はブログ、Twitter、Facebookページのいい感じな連携方法をご紹介します。

ブログを更新したらFacebookページのウォールとTwitterに投稿されるようにする

ブログを更新したら自動で記事のタイトルとリンクがTwitterとFacebookページのウォール(掲示板みたいなのね)に表示されるようにします。

これには「Status Updater」というすんばらしく便利なWordPressプラグインを使います。
結構いろいろ設定しなくてはいけないんですが、こちらのブログ様に丁寧にやり方が書いてあるので、詳しくはそちらで!

なお、上記のブログ様の説明にはTwitterについてのことは書いてないんですけれど、多分簡単だと思います。多分。それか、Twitterについては別のプラグイン「Tweetable」を使うのも良いかもしれません。(設定の説明はこちら

さて、この「Status Updater」を設定すればブログに記事を投稿したタイミングでとTwitterとFacebookページにも投稿されるようになったのですが、さらにすばらしいのは、この記事を投稿するタイミングで「この記事はFacebookページのウォールに投稿する??」みたいに選択することができるんですね!

私のFacebooklページはiPhone関連専用のページなので、こういったFacebookやらWordPressやらの話は投稿したくないので、とても助かります。

ブログの記事をFacebookページの1つのタブとして表示する

さて、次にブログの記事を一覧にしたページをFacebookページのタブとして表示します。

方法は、involverという有名Facebookページアプリ制作会社が無償で提供している「RSS for Pages」を使います。

具体的な使い方はこちらを参考にしてください。

はい完成!

これで、WordPressとFacebookページとTwitterの連携が完成しました。ブログを更新すると、Facebookのウォールと記事一覧に投稿されて、Twitterにもつぶやかれるわけです。

そんなわけで完成したのがこちら。iPhone & iPad App. [PICxPIC.com]

よかったら「イイネ!」を押してくださいまし。

WordPressのUltimate Google Analyticsでログが取れない場合の解決方法

WordPressにGoogle Analyticsのタグを埋め込むためのプラグインはいくつかありますが、私はいつもUltimate Google Analyticsを使っています。

先日、私の管理しているサイトの一部のシステムをWordpressを使ってCMS化していたので、そちらにUltimate Google Analyticsを入れました。
しかし、Google Analyticsにログインして解析結果を見てみても、ログが取れていませんでした。

そんな、「プラグイン入れたのにログが取れないよぉ!」と、同様の問題でお困り場合の解決策(チェック項目)を下記に記しておきます。


チェック1、プラグインを有効にしてる?

そもそも、Wordpressにインストールしたプラグインは、設定画面でプラグインを有効にしないと動作しません。
インストールしたら忘れずに有効にしましょう。


チェック2、Ultimate Google Analyticsにタグを設定した?

Ultimate Google Analyticsを有効にしたら、管理画面の左メニューから「Ultimate GA」を選択し、その画面で自分のGoogle Analyticsのタグのキーを入力しなくてはいけません。

設定画面で「UA-XXXXXXXXX」みたいになっているところに、Google Analyticsのタグの「UA-1234567(人によって数字は異なります)」をコピペしましょう。
コピペしたら、ページ下の「Update Option」をクリックして保存するのを忘れずに。


チェック3、wp_head();とwp_footer();タグはちゃんと入ってる?

プラグインの中には、wp_head();とwp_footer();というタグがないと動かないものが多くあります。
wp_head();は</head>の直前に、wp_footer();は</body>の直前に貼りつけてあげましょう。

Wordpressをブログとして使っている場合は大体誰かの作ったテンプレートを忘れないと思いますが、
クライアントのサイトの一部をCMS化する場合などは忘れがちなので注意です。


チェック4、footer.phpを用意してる?

最大の見落としポイントですが、Ultimate Google AnalyticsはWordpressのテンプレートのfooter.phpを読み込まないと動きません。
つまり、footer.phpにwp_footer();や</body>タグを記載し、そのfooter.phpをメインのテンプレート下部で読み込む、というようにするわけです。

めんどくさかったら、wp_footer();と</body>と</html>だけ外部読み込みにするだけでもOKということです。

本体のテンプレート
//本体のソース(index.phpなど)のソース最下部
<?php get_footer(); ?>

footer.php
<?php
	wp_footer();
?>
</body>
</html>


これだけやれば、きっとタグが表示されるはずです。

それでもソースの下部にGoogle Analyticsのタグが表示されず、かつ意味不明な英語がソースのヘッダー部分に記載されていた場合、
それはユーザー(あなた)がそのページのWordpressアカウントにログインしているからです。

Ultimate Google Analyticsは頭がいいので、そのサイトの管理者はアクセスログに含めないよう、ログインユーザーがアクセスした場合はタグを書き出さないようにしてくれるのです。

というわけで、その場合は心配ご無用で、Wordpressからログアウトすれば無事にタグが表示されるはずです。


では。

【随時更新】CakePHPでよく使うヘルパー一覧

2か月以上CakePHPに触れていなかったら、案の定使い方を忘れたので、改めて復習中。

今回は、頻繁に使うヘルパーをまとめます。
フレームワークは便利なのですが、その独特なルールを忘れてしまうと逆に時間がかかってしまうので、
忘れないように定期的に触っていた方がよさそうですね。

■使用するヘルパーを指定する
使用するヘルパーをコントローラークラスで指定してあげるのですが、
各コントローラーごとに設定すると非効率なので、親クラスである【appcontroller】で指定しましょう。

class AppController extends Controller
{
	var $helpers = array("Html","Form","Javascript","Ajax");
}

■ヘッダーでCSSファイルを読み込み
<?php print $html->css("layout"); ?>

■ヘッダーでJavaScriptファイルを読み込み
次に、ビューに読み込むJavaScriptファイルを指定
<?php print $javascript->link("jquery"); ?>

■画像を書き出す
<?php echo $html->link($this->Html->image('home.gif'), '/users/add',array('escape' => false), false); ?>

■リンク付き画像を書き出す
<?php print $html->link($html->image('images.png'),'http://hoge.com'); ?>


こちらに記事は随時更新予定です。今日は時間がないので、これだけ。

SimpleChatの最新つぶやきを別の場所に表示させてみよう。

SimpleChatの記事を見てくださった方よりコメントにて「ブログ(サイト?)のトップページに最新のつぶやきを表示させたい」とご要望をいただきました。

というわけで、ソースをつくってみました。

ちなみに右サイドメニューの「SimpleChat_2の最新つぶやき」と書いてある場所が、それです。(10月8日・削除)
SimpleChat_2につぶやくと、サイドメニューに表示されるテキストが変わります。

では、実装方法をご説明します。

	&lt;?php

	//DB接続
	$dbname = &quot;★★★/sql/bbs&quot;;
	$conn = sqlite_open($dbname) or die (&quot;エラー1&quot;);

	$sql = &quot;SELECT * FROM comment ORDER BY id DESC LIMIT 3;&quot;;
	$res = sqlite_unbuffered_query($sql,$conn) or die (&quot;エラー2&quot;);

	while ($row = sqlite_fetch_array($res, SQLITE_ASSOC)){
		$message = &quot;&lt;div class=\&quot;box\&quot;&gt;&lt;p class=\&quot;date\&quot;&gt;&quot; . $row[&quot;date&quot;] . &quot;&lt;/p&gt;&lt;p&gt;&quot; . nl2br(htmlentities($row[&quot;message&quot;], ENT_QUOTES, &quot;UTF-8&quot;) . &quot;&lt;/p&gt;&quot;) . &quot;&lt;/div&gt;&quot;;

		print $message;
	}

	?&gt;

★★★には、サイト(ブログ)のトップページからSimpleChatフォルダの中のsqlフォルダまでのパスを相対パスで書いてあげてください。
(WordPressなどを使っていて、かつパーマリンクの設定をいじっていると階層が動的に変わるので相対パスだとエラーが起こります。そんな時はサーバーの最上位階層から絶対パスで書いてあげれば繋がります。/home/sites/heteml/users111………./sql/bbsみたいに)

また、「LIMIT 3」の「3」を変えると、表示されるつぶやきの数が変わります。

上記のソースを、ペコっとはってあげてください。

貼る場所が既に<?php ?>で囲まれたところの中に貼る場合は、上のソースの最初の<?phpと最後の?>を削除してください。

データベースへの階層が間違っている、もしくは文字コードが違うなどの問題がなければ、表示されると思います。

※ちなみに、つぶやきが投稿されたらページを更新しなくても自動的にAjaxでテキストが変わる!」というわけではありません。

Twitterの普及もあり、簡易チャットは需要があるらしく、私のブログもそういったキーワードで検索してこられる方が多いようです。
iphoneアプリの第3弾も出したので、そろそろPHP+Ajaxでしっかりしたサービスをガシガシ作っていこうと思います。

Fireworksを使って書き出したgif画像が汚い場合の対処法

対処法というほどのことでもないんですけれどね。

Fireworksで書き出した画像は、基本的になんか汚いような気がしますが(私だけ?)、gif画像は明らかに汚いです。グラデーションなどは高確率でジャンプします。

そんなときの対処法。それは、「photoshopを使ってgifで書き出す」ということですw 

なんだそりゃって感じですが、photoshopで書き出したgif画像は、写真でない、図版や見出し画像などであればjpgと見分けがつかないほどきれいに書き出せます。


もしも、「いや、めんどくさいからFireworksでキレイに書き出したい」という方は、「最適化」で「ディザ」を「100%」にして「アニメーションGIF」を設定すれば、少しきれいになります。「アニメーションGIF」にすることに意味があるかどうかは不明です。
(その設定でやったらきれいに書き出せたので、そのままのせときます)

では。