サーバのPHPが4のままだったりして、twitter toolsのdaily postが使えない方へ Yahoo!pipesとWP-o-Matic(WP-plugin)を利用した、代替手段のご紹介です。
(※ただし、1日20件までのtwitter投稿しかWPに投稿されません。発言の多い方は注意。Y!pipesで使わせてもらっているTwitterDigestの仕様です。)
大好きだったtwitter toolsがdaily postを自動投稿してくれなくなって、早1年くらい。DBにログは蓄積してくれているのだけれど、自動投稿だけがどうしてもうまく動かない。PHP4を主な原因としているらしいこの症状はわたしだけのものではないらしく作者さんも把握しているようだけど、対応は次バージョン以降になるとのこと。次バージョン! 次バージョン! と対応を心待ちにするも、なかなかそれらしい気配は見られず、そうこうしているうちにもどんどん(自分にとってだけ)大事なログは増えていき…。あれやこれやと何か月に1度挑戦しては挫折してきましたが、ようやく、よーうーやーくー、代替手段と言えるものが見つかった感じなので、ご紹介です。
材料は、Yahoo!pipesとWP-o-Matic。
- WP-o-Maticをインストール
まずは、feedから記事を自動作成・投稿してくれるWPプラグインWP-o-MaticをWPに導入します。WP-o-Maticのページより、ファイルをダウンロード(ちょっと見つけづらいけど、donationアイコンの10行ほど下にあります)。zipを解答して、ftpで「wp-content>plugins」フォルダに放り込み、WP管理画面で有効化。WP管理画面「設定>WP-o-Matic」にて、指示に従い、初期設定(4ステップくらい)。わたしはよくわからなかったのでデフォルトのまま進んでいったところ無事動きましたが、結構大事なところのようなので知識のある方はきちんと読んだ方がよさそうかも。ちなみに途中挟まる動作チェックではわたしの環境では2つくらい足りないものがありました(でも動いた)。
- Twitter Digestのrssを入手
次に、いろいろなレシピが公開されているYahoo!pipesの中から、Twitter Digestのページにアクセス。Twitter User Name(自分のtwitterユーザ名)と、GMT Timezone Offset(日本=+9)を入力し、Run Pipeをクリックします。すると昨日だかおとといだかのtwitterログが抜き出された「My Twitter Digest: 200x-xx-xx」というタイトルのfeedが登場するはず。同じ枠の中、右上にある「More Options>Get as RSS」を選択。rssのurlを入手(urlをコピー)します。ふぅ。ここまでで下準備完了。
- WP-o-Maticを設定
さてここから、WP管理画面「設定>WP-o-Matic」にて、設定を行っていきます。まずはWP-o-Matic全体の設定。「WP-o-Matic設定画面>Options」にて、「Unix cron」のチェックを外します(外してうまくいかない場合は、再度チェックを入れて試してみてください。参考)。「Image cache path」に記入してある(デフォルトは「cache」)名前のフォルダを、さきほどupした「wp-content>plugins>wp-o-matic」フォルダにftpで新規作成、フォルダのパーミッションをサーバとブラウザから書き込みできるように変更します(数字はサーバ環境により異なると思うのでここでは書きませんが、きちんと動作していないと「WP-o-Matic設定画面>Options」の上部にエラーが表示されるので、ftpとWP管理画面をいったりきたりしながらパーミッションをいじってみればそのうちエラーが消えると思います。このcache用フォルダは、「Cache images」にチェックを入れないのであれば、もしかして不要かも)。「Enable logging」にチェック。あとは適当に。最後に「Save」をクリック。
次に、個々のcampaignを設定。campaignというのは、タスクとでも言い換えればいいのかな。feedを自動投稿させるための一連の設定で、WP-o-Maticではいくつものタスクを動かすことが可能です。「WP-o-Matic設定画面>Add campaign」をクリック。「Basic」タブで、適当なcampaign名を入力。「Feeds」タブで、先ほど入手したY!pipesのrss urlを入力。「Categories」タブで、自動投稿させたいカテゴリにチェック。「Rewrite」タブはちょっと飛ばして、「Options」タブ以下、「Frequency」で投稿頻度の日時分を記入、「Type of post to create」で公開/プライベート/下書きを選択、「Author」で投稿者を選択。あとはお好みで。「Rewrite」タブは、feedに含まれる文字列を置換することが可能なオプションのようです。設定が終わったら、右上の「Submit」をクリック。無事登録された旨の表示が出ればokです。
- phpMyAdminでURL修正
これで完了!と言いたいところですが、WP-o-Maticの問題なのかY!pipesの問題なのか、WP-o-Matic + Y!pipesの組み合わせは、そのままだとうまくいきません(取得投稿が「0」のままでちっともfeedを拾ってこない)。問題は、さきほど設定してやったfeedのURLが、DB上で少し書き変わってしまうことにあります。そこでphpMyAdminなどを使って、DBを直接編集してやります。DBにログイン、「〜wpo_campaign_feed」というものを探し出し、「url」フィールドを編集(変更)、入手済みの(さきほどWP-o-Matic管理画面で設定したのと同じ)URLをぺたりを貼り付け、保存(細かく言うならば、Y!pipesのfeedURLに含まれる「&」の後にいらない文字列がくっついてしまうのが原因のよう。参考)。
- あとは待つだけ
ここまでで、設定は完了。後は、自動投稿の時間を待つばかり。最初に手動で拾ってきてしまうと(Fetch)自動投稿機能が動いているかどうかのチェックがすぐできないので、Fetchは行わず、まずは投稿頻度を5分間隔などに設定して、自動投稿をチェック。無事動いていることが確認できてから、1日間隔などに変更するのがいいかなと思います。「WP-o-Matic設定画面>Dashboard」では、次の自動投稿時間までのカウントダウンがされています。時間が来てから投稿までちょっと時間がかかることもあるようなので(特に、unix cronを利用した場合…?)、投稿まで数分待ってみてください。
いや、なんだかこう文字で書いてみると、ものすごい大変な感じですね。Twitter Toolsって偉大! でも、Y!pipesの便利さはちょっと見ておく価値がありますし(yahoo.comのIDでログインすると、どんな風に動いているかの中身を見ることも可能、自分で設定したりすることも可能)、WP-o-Maticはtwitterに限らずいろいろなfeedに使うことのできる汎用プラグインなので、こちらもアイデア次第でいろいろ楽しいことができそう。Twitterのログを自動投稿させるだけとしてはちょっと大がかりな仕組みになってしまいましたけど、今後の拡張性(?)を考えると、これもありかなという気がします。
—
とかなんとか書いたのが昨日。今日になってふと利用中のレンタルサーバを確認したところ、なんと今月中にいよいよPHP5に対応するとのこと。なぜこのタイミングで〜! 苦労が報われずとほほな気分ですが、まあいい勉強になったと思うことにします。TTが使えるようになったら、どうするかなぁ、またTTに戻るかなぁ。せっかくだからこのシステムでいくかなぁ。ちょっと考えます…。
<追記(2009/1/9)>
どうも投稿タイトルの日にちが1日ずれてしまう(6日のログが5日の日付になってしまう)のは、う〜ん、Y!pipesの時差のスクリプトが不完全なのかな〜。いじれるならいじってみようとにらめっこしてみたけれど、あまりに複雑でわたしの手には負えず。発言ごとにtwitter名が表示されるのもうっとうしいから、そこもそのうち変えたいな(これはY!pipesもしくはWP-o-Maticの置換機能で)。
<追記(2009/1/9)>
feedから投稿を生成してくれるWPプラグインは、WP-o-Maticの他にもあるようなので(feedwordpressなど)、Y!pipes Twitter Digestとそれらの組み合わせでももちろんokだと思います。その場合、phpMyAdminをいじるという作業を省けますね。
また、昨日になって、DailyFeedという国産の新サービスが登場しました。指定したfeedについて、前日のfeedを1日分まとめてくれる(=daily/digest)というもの。これこそわたしがずっと探していたもの。なんでないのかな絶対便利なのに〜と思っていたものでした。自分のtwitter feed(twitter本家左下から入手できるものね)をurlに入力してぽちっとなするだけ。それで1日ごとのまとめつぶやきfeedが新たに形成されます。これを利用すれば、DailyFeed+WP-o-Maticなどという組み合わせもおおあり。英語かつちょっと複雑なY!pipesを触る必要もなくなるので、ぐっと敷居は下がるのではないかな。ただ、現時点では新たに生成されるfeedがあまりきれいなものではないので(DailyFeedのサイトでみる限りはきれいなのだけれど、WPに取り込むには向いていないhtmlタグがついてしまっていたり、hatenaへのリンクがあったり、タイトル部分全体が記事へのリンクになっていたり(これはまあ好み))、その辺りはブログに向いたシンプル版の登場待ちでしょうか(わたしも要望出してみました)。DailyFeedを使って、あちこちにブログを持っている方がブログを一元化(daily postで)するのが、今年は流行っちゃったりするのじゃないかな〜?
<追記(2009/01/22)>
DailyFeed、その後どうなったかなと覗いてみたところ、要望への返答がなされていました。ただ残念、わたしが出した要望(2-3個)はみな却下な模様。まあ、もともとRSSリーダー等で購読するのを念頭につくられたサービスをblogに流用するための要望だったわけなので、仕方ないかな。ブログのdailypostなどに流用する人が増えてくれば、また反応も変わってくるかも。今は↑のY!pipes方式で(日付に難はあるものの)まあ動いているようなので、わたしは当面それでいきます。
<追記(2009/12/24)>
つぎつぎと新サービスが発表される最近のtwitter。来年はおそらく一般の方にもtwitterが認知されるtwitter元年になるのだろうなぁ。さて、「気になるあの人のつぶやきが1日分まとまってメールで届く「ツイートメール」」なんていうものがスタートしていました。国産サービスです。これに自分のアカウントを指定して、WPにメール投稿するようにしておけば、今のところもっとも有力なtwitter tools altとなりそうな予感。1日1度だし、国産だ(から時差を気にしなくていい)し。気になるアカウントを指定する代わりに、気になるキーワードを指定する機能も予定されてる模様。また、いろんな使い方ができるよう、いくつかのテンプレートも用意されるようですよ。期待大!
<追記(2010/02/22)>
こちらにリンクを張るのを忘れていました。少し前になりますが、昨年11月に「Twitterのバックアップ法を考えてみた(7種類くらい)」という記事をアップしました。あわせて参考にしていただければ幸いです。(アフィリエイトルームBLOGさん、ピンバックありがとうございました!)
その後も、Twitter Toolsの日次更新処理は対応されていないようですねえ。残念。
>りんもんさん
こんにちは :-) TTのverは確かに1.6のままですね。でも、今ひさしぶりにTTのサイトを確認してみたら、6/22のブログのタイトルが”New Twitter Tools Features – Testers Requested”というものになっていました(ブログが落ちているようで、タイトルしか確認できなかったのですけれども)。これはもうすぐ新しいのが出ると期待していいのかな〜
わたしもそろそろまたブログに復帰(?)しないと…