[Tumblr] OAuthで認証してpostする流れ 【メモ】
よくよく考えたら、Tumblr API使ってpostってしたことなかったのでその辺まとめたメモ。 例によって例外処理とかかなり省略してるのでご利用は計画的に。
よくよく考えたら、Tumblr API使ってpostってしたことなかったのでその辺まとめたメモ。 例によって例外処理とかかなり省略してるのでご利用は計画的に。
前回の続き。 PEAR::Services_Twitterを使ってAPI1.1にリクエストを送る方法はこちらを読んでください。 【PHP】 PEAR::Services_TwitterでTwitter API 1.1対応 | mutter 「タイムラインから「google」という単語で検索してマッチしたツイートを取得したい」というような要求があった場合に、API1であればこんなリクエストを送れば取得出来ました。 GET search | Twitter Developers
http://search.twitter.com/search.json?q=google
API1.1では、要Authentication付きでこんなリクエストになります。
GET search/tweets | Twitter Developers
https://api.twitter.com/1.1/search/tweets.json?q=google
このリクエストをServices_Twitterで組み立てるとこんな感じになるのですが、
$obj = new Services_Twitter();
/* oAuth省略 */
$data = $obj->search->tweets(array('q' => 'google'));
実際に動かすと、
Unsupported endpoint search/tweetsと言われて動きません。問題は2つあります。
TumblrのRSSをまとめる「Tumblr Binder」というサービスを作っています。 umbls | Tumblrを便利に使うサービス そこではTwitterの認証機能を使ってログイン機能を作っているのですけれども、どの認証が上手く出来なくなっていました。まめに設定を変更するようなサービスでもない(使ってる人も大体1回設定したら終わりだと思います)ので、全く気付いていませんでした…申し訳ありません。 現在は再びTwitterアカウントでログイン出来るようになっています。 今も使われている方がどれくらいいらっしゃるかわかりませんが、ご迷惑おかけいたしました。
息抜きにちょっとした自分向けアプリケーションを作りました。仕様はこんな感じ。
doSomething ... 1/5
doSomething ... 2/5
doSomething ... 3/5
doSomething ... 4/5
doSomething ... 5/5 finished
こう。
doSomething ... 5/5 finished ← この行だけで更新されていく
わかりますかね…
15時くらいにサーバの1つが突然繋がらなくなり、何かやっちまったのか(例えばデータベースへの過剰なアクセスとか)と思ってサーバを再起動してみたのだけど全然ダメでおろおろしていたら、しれっとこんな告知が出てました。
メンテナンス・障害情報・機能追加|さくらインターネット公式サポートサイト
平素よりさくらインターネットをご利用いただき、誠にありがとうござ います。 本日、ご提供サービスにおきまして、以下の通り障害が発生いたしました。 ご利用中のお客様には大変ご迷惑をおかけしておりますことを深くお詫び 申し上げます。
影響範囲 : さくらのVPS 1Gプランの一部 IPアドレスが下記の範囲のお客様 219.94.245.15 ~ 219.94.245.134 障害内容 : サーバに接続できなくなる障害が発生しました。 障害によりVPSの意図しない再起動が発生しました。ああうん、ドンピシャだよさくらさん。 いままでここまでビシッとターゲットになったことが無かったのでちょっと驚きました。発生したのが15時20分で復旧したのが18時05分。何が原因か解らないけど(機材の故障かなぁ)さすがに3時間とめられるのはきついなー。まぁ、障害発生は仕方ないか。ただせめてメールでお知らせくらいして欲しいなーと思いました。障害情報をRSSで読むといっても、それを読むRSSリーダーが今障害が起きているサーバに載っていたので。 とりあえず、データに何の問題も無くて良かったです。やれやれ。
調べてみたらPEAR::Cache_Liteが思った以上に頼りないことが解ったのでキャッシュ機構の入れ替えを検討。 【メモ】PEAR::Cache_Liteの生存期間について誤解してたこと(追記あり) | mutter いろいろ考えたのだけど、個人プロジェクトなんだし好奇心優先って事でKyotoCabinetとそれを扱うKyotoTycoonを入れて、PECL::Memcachedを利用して接続してみることにしました。PHP側については、OpenPEARの方に「Net_KyotoTycoon」と言うライブラリもアップされているのですが、まぁ今は良いかなと言うことで。 Net_KyotoTycoon \ パッケージ \ Openpear KyotoTycoon の PHP 版を作った – Heavens hell と言うわけで、以下インストール。
とあるシステムのセッションディレクトリを覗いてみたらミリオン単位のファイルが詰まっていることが解って、I/O重いの当たり前じゃねーか…!(普通は1ディレクトリ1000ファイルまでに抑えるべき)となったので改善を試みました。
具体的にはディレクトリを階層化します。
/path/to/session/sess_hogehogehoge
/path/to/session/0/1/2/sess_hogehogehoge
以下、手順。
環境はSymfony 1.4.11。
やりたいことは、次のようなルールが設定されているときに、
sample:
url: /:query
param:
module: module
action: action
次のようなURLで引数を渡したいと言うことなのだけど、これが上手く行かない。
http://hogehoge.com/Part.3
結果は、404 Not Foundになってしまう。
なぜ404 Not Foundになってしまうかというと、渡した文字列「Part.3」に含まれるピリオドがセパレータとなって機能し(Symfony 1.4のroutingにおけるデフォルトのセパレータは「/」と「.」)、「Part」部分がモジュール名、「3」部分がアクションとして解釈されてしまうため。単純にSymfonyに文字列が渡らないと言うことであれば、次の解決策が参考になるのだけど、どうやらそういうことではないみたい。
ルートにピリオドを含める – Do You PHP はてな