token secretの保存

しかたないんで、自前でセッション管理してみることにした。ユーザーのクッキーに記録するのはIDだけ。あとはそれを見て、DB_Fileに記録したaccess token と token_secret を引っ張り出す。
twitterの OAuth で使うtokenは永続性がある=ずーっと使えるって話だからこんな面倒なことになるのだ。その場限りなら、ユーザーのクッキーだけでもまあギリギリOKだろうと思ったんだけど、ずっと使えるトークンだと、ユーザーのブラウザのクッキーに記録させるのはちょっと怖いじゃないか。で、ずっと使えるのに、クッキーをその場限りにしておいて、いちいちアクセスさせるとAPI制限に引っかかりそうだし。
てことでコードを書くだけ書いた。それでも、これでも、やっぱり。面倒くさいだけのOAuth使うヒマがあったら、Basic認証でイケよ、どうせセキュリティ的には目くそ鼻くそだぜ、と思う自分がいて、モチベーションが上がらないまま、週末なのですでに赤ワイン。
とはいえ、yahooとかmixiとかgoogleとか、OAuthで繋ぐサービスがあるから、調べておいて損はない、はずだよなぁ。
ちなみに縦書きtwitter、「たてたったー」は、まだBasic認証です。
[12/27 16:26:52]
哀しいほどハマったので、メモ。 perl の Net::OAuthは、わたしには手におえないことがわかった。ちょろっと改造しようにも、オブジェクト指向とやらで、わたしのスキルではソースを追えない。ので、OAuthも自前で作った。そこでのハマりのメモ。
その1.
署名は、メソッド(GETとかPOST)、リクエスト先のURL(パラメータは入れない)、URLにくっつけるパラメータ。の3種類を合わせて元になる文字列を作る。このとき、各々URLエンコードが必要なのだが、ハマったのがURLにくっつけるパラメータ。
key=value&key=value形式でvalueをURLエンコードするのはいいんだけど、一度URLエンコードした上で&で繋いでひとつの文字列にしたら、さらに全体をURLエンコードをする必要があった。2重にURLエンコードするような感じ。
その2.
署名に使うシークレットキーは、コンシューマーキーとアクセストークンのシークレットキーがある。twitterの場合なのかHMAC-SHA1の場合なのか調べてないのだが、アクセストークンを取得するまでは、当然ながらコンシューマーキーしか手元にはない。
形式は各々URLエンコードして&で繋いで、それをキーに使用する。
コンシューマーシークレット&アクセストークンシークレット
まだアクセストークンのないフェーズでも&が必要だった。
「コンシューマーシークレット&」というケツに&をつけてキーにする。
http://developer.yahoo.co.jp/other/oauth/api.html
http://developer.yahoo.co.jp/other/oauth/signinrequest.html
さすが yahoo!実例が載っていて大助かりだった。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
縦書き twitter その後

APIを使って、取得したtwitterのデータを縦書きで表示する、名づけて「たてたったー」に、擬似縦書きもどき入力フォームをつけて、入力時にも縦書きで確認できるようにしてみた。
ttp://www.holeinthewall.jp/~butch/zakki/tatetatter.pl
こういう小ネタはjavascriptの出番。prototypeとかjQueryを使うまでもなく、textareaに入力された文字を keyup のたびに読み込んで、用意したdiv要素の中に表示していく。一見リアルタイム。
縦書きで表示するのは、ミソというかコロンブスの卵というか、float:rightした、幅 1em のdiv要素に流し込むだけ、という呆気なさ。CSSだけで縦書き表示はできるので、javascriptと組み合わせてこんなこともできるありがたさよ。
おもしれーっす。
[12/18 23:13:36]
ついでに。
ajax使って、新着情報を取りにいくようにした。公式のWebの「新しいツイートが?件あります」というアレだ。javascriptは好きじゃないので、悔しいけど、便利。
ついでに。
過去記事も見られるようにした。
どちらも since_id とか max_id をパラメータに渡してやればいいだけ。このシンプルさがいいところだ。欲しい情報を伝えればそれだけを返してくれる、のでなんか作るにしてもテキトーなものだったらスグにできちゃう。ネタ勝負。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
検索エンジンがなかったら絶対やらないこと

SEOとかいう、やっぱりWEBの胡散臭い話になってしまうんだけど、なぜか昨日のは頭に血が昇ってた、すまん。
yahooとかgoogleの検索で一位に表示されるにはどうしたらいいのか、というのがSEOというヤツ。いろいろな手法・技術だの枝葉の部分での議論、ユーザー視線とか検索エンジンの解釈といった発想時点での是非があれこれごちゃごちゃあって魑魅魍魎の跋扈する世界になっている。検索エンジンはECサイトなど集客の入り口になるので生命線。同業他社よりもひとつでも順位を上げたいのも当然。
そのあたり比較的わかりやすくまとまってたのが以下の記事
http://web-tan.forum.impressrd.jp/e/2009/10/26/6751
で、そんなことは実はどうでもよくて。記事の文脈無視、ここで上げられている「検索エンジンがなかったら絶対やらないこと」という一文だけを引っ張り出して思うことがあったりなかったり。
現状、アクセスしてもらうには、yahooとgoogle、その他bingとか、検索エンジン頼みで、google八分という言葉があるように、検索エンジンさまにそっぽ向かれるとどうにもならない。でも、検索エンジンのことをこれっぽちも考えずにサイトを作っても、ソーシャルグラフじゃないけど、「つなげる」ための仕組みが充実してきている、ように思える。検索エンジンのことを考えて、この文章はHTMLの冒頭にないといけない、とか、レイアウト的にはこっちだけどHTMLは逆、とか不自然なことをしないでサイトを作ってもいいんじゃないかと。
検索エンジンが神の座を降りるようなことになったら面白いんだろうけど。
[10/29 23:59:06]
で、こんな雑記を書くと、googleのadsenseにはSEO業者の広告が。SEO業者・広告屋は信用できないんで困ったもんです。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
twitterとか大根おろしとか

twitterをストリーミングでダラ見してたら「ブロガーが失うもの/反論を予測しながら~について」というエントリが。なんだろと思って見に行って腰が抜ける
> 特に僕のような中堅ブロガーは以下のタイトル的な状態に陥ってしまって、身動きが取れなくなる。
冒頭の一文、いきなりコレだもんなあ。中堅って誰認定、自己申告なんだろうか、そもそもブロガーてナニさま。思わず吹いてしまって終了。
地元の八百屋の大根が辛いんだ。辛味大根よりも確実に辛い。この大根おろしに桃屋の塩辛を乗せると激辛だけどさっぱりのツマミになる。
地元の餃子屋の餃子が美味い。なんの細工もない、皮薄めのただの餃子260円なのに、もしゃもしゃ食える。
てことで昨日は夕方から3L1780円の赤ワインを飲み始めて、今日はすっかり二日酔いだ。やたら冷えるし、うちでのったりナニもしない一日にしてやろう。
[10/25 16:13:32]
adsenseを除外して、javascriptを外部に出して、validatorを通るようにした。なんか、100点取って喜ぶお子様レベルだな、おれ。
[10/25 18:45:36]
http://www.asahi.com/national/update/1023/TKY200910230192.html
丸善が企画して、松岡正剛が選んだ書棚陳列、ということらしい。
新刊書店がダメなのは。書棚の並びが基本的に出版社別になってるところ。返品処理のためだけのわけかた。客目線になってない。
返品処理のないブックオフは「ちゃんと」著者別になっている。
丸善の企画がうまくいくかどうかはともかく、並べ方ひとつ変えるだけのことがニュースになること自体、どうなんだろうか。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
validator W3C原理主義

妙に冷える東京の週末だ。
W3Cに準拠したタグ付け、意味をしっかり把握して構成していくべきである、のはよくわかるんだけど、教条主義原理主義になってもしょうがない。
ある程度把握した上で、テキトーにやりやすいようにやって、まずは形すること優先。最初から100%の完成なんてありえない。晒してナンボ。じゃねえの。
てことで、ふとfirefoxのvalidatorに、この雑記帖をかけてみたら、エラーと警告が出やがるのは周知の承知。しょうがないんで、久しぶりにココのスクリプトを修正して、とりあえずエラーが出ないようにしてみた。けど、javascriptで警告が残るし、adsenseでエラーが出る…ので、もりもりやる気が失せて雑記帖とお言葉データベースだけ修正して終了。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
googleがAjax部分も登録?

検索エンジンのクローラーはjavascriptを実行できるわけじゃないので、Ajaxで作られたコンテンツは検索エンジンにとっては「存在しない」…なもんで、検索エンジンからの集客が中心のECサイトなんかはAjaxは鬼門だった。検索エンジンに縛られて、面白い・使いやすいサイトができなくてどうする。本末転倒。
googleがAjax部分もクロールできる・検索エンジンに登録できるようにする、というので見てみた。
http://www.sem-r.com/seo/20091008202855.html
結局、Javascriptを適用した後のコンテンツを用意しろよ、ということ。なんじゃそりゃ。うううむ。まだまだAjaxは使えないじゃん。
phpをちょろっといじってページ作り。phpって変数の範囲がわかりにくい、ような気がする。requireされてる先まで見に行かなきゃいけないことがけっこうあって、探し物をしている時間が長い感じ。やっぱりperlが好きだ。
[10/14 00:14:23]
twitterのストリーミング実況を導入。
http://yusukebe.com/archives/09/09/26/200713.html
こちらのおかげです。おもしれー
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」