Twitterクライアントで「いいね!」ボタンを実装するアイデア

(あとで大幅に書き直します.)

「いいね!」ボタンを押す側のクライアント処理

前提条件: 「いいね!」と伝えたいtweetが選ばれている.

  1. 選ばれている tweet に対して favorites/create API を発行. (お気に入り)
  2. そのとき特定の文字列(ハッシュタグ?)と対象ステータスIDを含むメッセージを,「いいね!」の送り先に tweet する.(このtweetを,ここでは「表示制御メッセージ」呼ぶ)
    1. 機械的なメッセージにすると,非対応クライアントではワケがわからず悲しい.例えば「@monamour555 #ppnow_iine 256」などではなく,「@monamour555 いいね! #ppnow_iine 256」など自然言語な文を入れると,みんな幸せ.

「いいね!」ボタンを表示する側のクライアントの処理

  1. statuses/mentions を監視.
  2. 得られた mentions に特定の文字列(ハッシュタグ?)が含まれなければ通常処理 [ここで終わり]
  3. 特定の文字列(ハッシュタグ?) を抽出して,表示する内容を選択(下記"拡張"参照)
  4. ステータスIDをメッセージから,送信元ユーザIDをAPIから,それぞれ抽出して,表示制御メッセージを送信したユーザが,ステータスIDに対応するtweet をお気に入りに加えているかどうか確認.
  5. お気に入りにあったら,該当するtweetに「いいね!」的メッセージを表示する.
  6. 制御表示メッセージは,対応クライアントでは,TLには表示しない.

拡張

ハッシュタグを複数定義しておくことで #ppnow_iine →「いいね!」,#ppnow_otsukare →「おつかれ!」, #ppnow_daijoubu →「だいじょうぶ!」など実現可能.

補足

お気に入りを併用するのは,表示制御メッセージに偶然マッチしてしまうことを防ぐため.非公式RTだと書式によっては有り得る.
(慰めのメッセージがお気に入りとなるのはアレなので)公式RTを使う手も考えたけれど,鍵付きのユーザの扱いが難しそう.