これはなに
- 2018年10月31日をもってTwitterKitのサポートが終了する
- TwitterKitからの移行先をSwifterにした
- Swifterへの移行方法と、移行以外でハマったこともあったので書いた
TwitterKitのサポートが終了
とても残念ですが2018年10月31日をもって、GitHub上でiOS、 AndroidとUnityを対象にした本オープンソースに関する質問や問題を受け付けることを終了します。
移行先をSwifterにした理由
- Swift製でcocoapodsとcarthageに対応してた
- Twitter認証とつぶやきの投稿のみを実現したくSwifterはそれが可能だった
ちなみに、Twitterの公式ページにはTwitter関係のOSSの一覧があり、Swifterはそこで紹介されている
ざっくりとしたSwifterへの移行対応
- 認証処理とつぶやきの投稿をするクラスをGistにおいた
- 必要ないかもしれないが、Objective-C からも使えるようにした
http://keeping.hatenablog.jp/entry/2018/10/22/010748 · GitHub
認証処理
// AppDelegate の didFinishLaunchingWithOptions で処理すると思う SwifterWrapper.share.setup(consumerKey: key, consumerSecret: secret)
func authorize(controller: UIViewControlller) { /* controller が SFSafariViewControllerDelegate に準拠していると Twitterのログイン画面がSFSafariViewControllerで表示される */ share.login(controller: controller, success: { (userID, screenName, token, tokenSecret) in // 認証成功 }, failure: { (error) in // 認証失敗 }) }
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool { return SwifterWrapper.handleOpen(url: url) }
つぶやき投稿
// mediaはつぶやきの添付画像とか SwifterWrapper.share.postTweet(status: text, media: media)
Swifterへの移行以外でハマりそうなところ
- callback URLsが6月ごろのGDPR対応でホワイトリスト方式になっており、管理画面のcallback URLsと完全に同じURLでないと正常に動作しない
- Twitterの公式ページにも説明がある
- Twitterの公式ページを要約すると、callback URLsには下記のURLを入力するように推奨されている
- iOSの場合、URLSchemeで帰って来たとき、なぜかCONSUMERKEYが全て小文字になっているので不思議(理由を知っている人が入れば教えてください 🙇♂️ )
まとめ
- TwitterKitからの移行先をSwifterにした
- Twitterは今後どう発展していきたいのだろうかと少し考えたりもした
- 直接関係はないけど、Tweetbotのテーマの切り替えが素晴らしい
- おそらくすべての画面で2本指の上下スワイプでテーマを切り替えられる
こんな感じです。 pic.twitter.com/FxN0ZUBj4w
— ストクロ (@kurotyann9696) 2018年10月21日