Twitterのwebからの投稿でOAuthのクライアント偽装に挑戦→失敗

大したことではないのですが、発言を投稿する際にクライアントの表示をしたいと思い、とりあえずsctでOAuthのクライアント登録をしました。
ところがOAuthに登録したクライアント名を表示するにはOAuth経由でpostをしなければならないらしい。sctからpostする際はその特徴からweb経由の投稿になるので、OAuth経由でのpostができない。これは困った…
一応Webからのpostはクッキーとauthenticity_token、それにstatus(発言)とオプションとしてin_reply_to_status_idを/statuses/update.(xml|json)に投げればいいということになっているようですが、Twitter API 仕様書 (勝手に日本語訳シリーズ)によると、sourceという隠し?コマンドがあり、これを利用すれば一部の、というかほとんどのクライアント偽装はできるのですが…
最近整備されたOAuthの偽装はできないようです。以下試してみたクライアント。

  • 偽装できたもの
    • API
    • mobile web(source="mobile")
    • movatwitter
    • NatsuLiphone
    • iTwitter
    • P3:PeraPeraPrv(source="P3")
    • pocket*(source="pocket")
    • Termtter
    • tmitter
    • tokotto
    • Tween
    • TweetDeck
    • Tweetie
    • twicli
    • twitterfeed
    • TwitterFon
    • TwitterFox
    • TwitterIrcGateway
    • YoruFukurou
    • ちーたん(source="tiitan")
  • 偽装できなかったもの
    • MobsterWorld
    • Movatter
    • Spymaster
    • 安心と信頼の駄目bot

基本的にsctはIDおよびパスワードを保存しないで(ログイン時のみ使用)クッキーのみを保存してセッションを維持するのですが、本当はIDとかパスワードをログイン時含めて一切渡さないのがベスト。OAuthはID、パスワードを他サービスに渡さずにアクセス権を委譲できるのでそれを使えばいいのですが、OAuthはAPIを叩くためのもので、webにアクセスができるのか「わからない」。*1
postだけOAuthを利用するという手もあるけど「なんでOAuth使ってるのにIDとパス入力しないといけないの」ってなるし…
ID、パスを使わずOAuthで「API」を叩いてしまえばその時点でsctを改名しなければならないので最悪諦めてmobile webあたりで妥協かなぁ。
まぁ、API制限が150回/hになったようなのでこいつの意義もあんまりなくなったんですけどね…

*1:調査していないので。でもたぶん無理な気がする。今度試してみようと思います