Swifterとは
swiftで書かれたTwitter Framework.
ソースコードも公開されているため、使いやすい.
TWitterKitがサポート終了したし、こっち使えばいいんじゃね。
ソースコード : github : Swifter
Swifterに用意された主な関数の使い方
連携する
//login処理
// swifter構造体の宣言
let swifter = Swifter(consumerKey: <twitter consumer key>, consumerSecret: <twitter consumer secret>)
// のちに使う変数
var twitterTokenKey:String!
var twitterTokenSecret:String!
swifter.authorize(
withCallback: URL(string: "swifter-<twitter consumer key>://")!,
presentingFrom: self,
success: { accessToken, response in
print(response)
guard let accessToken = accessToken else { return }
twitterTokenKey = accessToken.key
twitterTokenSecret = accessToken.secret
}, failure: { error in
print(error)
}
)
tweetする
返り値はjsonデータ形式
// さっきゲットしたtwitterTokenKeyとtwitterTokenSecretを使ってswifterを宣言し直す
swifter = Swifter(consumerKey: <twitter consumer key>, consumerSecret: <twitter consumer secret>, oauthToken: twitterTokenKey, oauthTokenSecret: twitterTokenSecret)
swifter.postTweet(status: "Tweetの内容", success: { json in
// 成功時の処理
print(json)
}, failure: { error in
// 失敗時の処理
print(error)
})
timelineを取得する
返り値はjsonデータ形式
// こっちは、連携中のユーザーのフォローしてるユーザーのツイートを時系列順に。
swifter.getHomeTimeline(count: 50,success: { json in
// 成功時の処理
print(json)
}, failure: { error in
// 失敗時の処理
print(error)
})
// こっちは、@~~~で指定したユーザーのツイートを時系列順に取得。
swifter.getTimeline(for: .screenName("<twitterの@~~~のuser名の~~~の部分>"),success: { json in
// 成功時の処理
print(json)
}, failure: { error in
// 失敗時の処理
print(error)
})
ユーザーを検索する(2021/5/20追記
返り値はjsonデータ形式
twitterの検索結果一覧画面っぽいのを作るために、jsonデータの中からtwitterの名前とicon画像のurlとscreenNameを取得する。
他にもいろいろあるから、使いたい時にまた見てみる。
let searchString: String = "test" //検索ワード
let pageNum: Int = 1 // 検索結果の何ページ目を返すか
let requestNum: Int = 10 // 1ページあたり何件の結果を返すか
swifter.searchUsers(using: searchString,
page: pageNum,
count: requestNum,
includeEntities: false,
success: { response in
for i in 0..<self.requestNum {
print(response[i]["name"])
print(response[i]["screen_name"])
print(response[i]["profile_image_url_https"])
}
},
failure: { error in
print(error)
print("failure")
}
)
まとめ
他にも、twitter上での操作はコードを通して全部できるようになってるっぽかったから、ソースコード見て必要な機能があったら実装していこう。