twitter-v1-bridge

Twitter V1 APIのように振る舞うブリッジ


iPhone 4Sでのスクショ iPhone 5でのスクショ

概要

Twitter V1 APIのリクエストを他のSNSのリクエストに変換するブリッジ。
古いTwitterアプリで他のSNSを使えるようにして、あの頃の優れたアプリをもう一度復活させます

オリジナルですか?

いいえ、私のオリジナル作品ではなくパクリです。
古いTwitterアプリでBlueskyができるこのプロジェクトをパクりました。
私はBlueskyにあまり興味がないので、このプロジェクトとは別でMastodon APIに対応したものがほしいなと思ったところから始めました。
iOSアプリを解析するほどの力はないので、自作のHTTPプロキシでリクエストを読んで13年前のドキュメントで調べながらPythonでゆるく実装してます。
ネットで調べても出てこないような非公開エンドポイント(/i/)の実装は、しゃーなく本家のGoコードを参考にして実装してます

使い方

まずここでMastodonアカウントのトークンを発行します。(ソース)
そしたらここからTwitter 5.0.3のipaを落として、Veterisとかでインストールしてください。
でインストールが終わりログイン画面を出したら、ユーザー名の欄にMastodonのユーザー名、パスワード欄にさっきのトークンを入れてください。
ここからが重要です。右下の歯車アイコンから秘密のメニューを開いて、APIルートの欄にhttps://twb.nekokawa.net/{インスタンスのドメイン}/と入れてください。
例えばインスタンスがmastodon.socialなら、https://twb.nekokawa.net/mastodon.social/という風になります。これを設定するとTwitterアプリに魔法がかかります。
すべての作業が完了したら、ログインボタンを押してログインしてみてください、おそらくログインできます。
タイムラインを眺めたり、ツイートしたりぐらいはちゃんとできるんで、しばらく遊んでみてください。

質疑応答

Q.なぜこんなにもログインが面倒なの?

A.本当は@[email protected] P@ssw0rd!みたいな感じでログインできるようにしたかったけど
糞Mastodonがパスワード認証を廃止しやがるし、ユーザー名のテキストボックスに@を入れられないので仕方なく。

Q.なんでGitHubにホストしないの?

A.自分のクソコードをAIに学習されるのが嫌だからです

Q.Twitterに対応しろ!

A.Twitterの非公開APIを解析しようと考えたけども、面倒くさいし私はTwitterが大嫌いなのでやりません
有り余る余裕ができたらやるかもしれません

Q.Misskeyに対応しろ!

A.もちろん!Mastodon/PleromaだけじゃなくMisskeyにも将来的には対応したいです

Q.なんか動かないんだけど!

A.動かなかったインスタンスと詳細を添えて至急、Discord鯖で連絡くれや。

Q.トークンは盗んでいますか?

A.はい、あなたのアカウントを乗っ取ります
ソース:https://code.nekokawa.net/Kazemidori_x86/twitter-v1-bridge

Q.コードの出来が悪い

文句言うな!文句あるならお前がプルリク投げてこい!

Q.Pythonとかw流石にw

A.黙れ

対応状況

5.0.3以外対応する気は今のところありません。
説明 対応状況 エンドポイント 備考
ログイン /oauth/access_token 完璧
トークン検証 /account/verify_credentials.json なし
ホームタイムライン /statuses/home_timeline.json 多分動く
ツイート, リプライ /statuses/update.json なし
画像付きツイート, リプライ /statuses/update_with_media.json バイナリに弱いから最後にやる
お気に入り(いいね) /favorites/create/:id.json なし
お気に入り(いいね)解除 /favorites/destroy/:id.json なし
引用リツイート /statuses/update.json Twitterアプリの挙動に加えて、Pleromaだけの独自実装が故に微妙
ツイ消し /statuses/destroy/:id.json なし
ユーザーのプロフィールを見る /users/show.json メディアタイムラインとやらが実装できてない
ユーザーの過去ツイートを見る /statuses/user_timeline.json なし
ユーザーのフォロー欄を見る /friends.json cursorの仕様が意味不明で今のところ20件しか取得できない
ユーザーのフォロワー欄を見る /followers.json cursorの仕様が意味不明で今のところ20件しか取得できない
ユーザーのお気に入り欄を見る /favorites.json Mastodonにそんな仕様がないので実装できない
ツイートの画像, URL, ハッシュタグ ない 適当に実装したらクラッシュ頻発したので実装を見送り
フォロー /friendships/create.json 鍵垢へのフォローリクエストが実装できてない
フォロー解除 /favorites/destroy.json なし
プロフィール編集 /account/update_profile.json なし