This library allows you to manipulate the Twitter API without a developer account.
Currently only Twitter API v1.1 is supported.
I plan to support Twitter API v2 and Twitter private APIs in the future.
If you like the project, Please Star ⭐️
- Swift Package Manager -
You can install Twifter into your Xcode project via SPM. To learn more about SPM, click here
For Xcode 12
- open your project and navigate to File → Swift Packages → Add Package Dependency...
- Paste the repository URL (https://github.com/SNQ-2001/Twifter) and click Next.
For Xcode 13
- navigate to Files → Add Package
- Paste the repository URL (https://github.com/SNQ-2001/Twifter) and click Next.
- CocoaPods -
Coming soon
try await TwifterClient().generate_guest_token() try await TwifterClient().rate_limit_status() try await TwifterClient().collections_entries(id: "custom-539487832448843776") try await TwifterClient().followers_ids(user_id: 1218659670) try await TwifterClient().friends_ids(screen_name: "_SNQ") try await TwifterClient().followers_list(user_id: 1218659670) try await TwifterClient().followers_list(screen_name: "_SNQ") try await TwifterClient().friends_ids(user_id: 1218659670) try await TwifterClient().friends_ids(screen_name: "_SNQ") try await TwifterClient().friends_list(user_id: 1218659670) try await TwifterClient().friends_list(screen_name: "_SNQ") try await TwifterClient().friendships_show(source_id: 1218659670, target_id: 1468966997438640128) try await TwifterClient().friendships_show(source_screen_name: "_SNQ", target_screen_name: "Shadow_Ban_Bot") try await TwifterClient().geo_id(place_id: "06ef846bfc783874") try await TwifterClient().geo_reverse_geocode(lat: 35.79449997305192, long: 139.79078800000002) try await TwifterClient().geo_search(query: "Tokyo") try await TwifterClient().geo_search(lat: 35.79449997305192, long: 139.79078800000002) try await TwifterClient().geo_search(ip: "1.2.3.4") try await TwifterClient().lists_list(user_id: 1218659670) try await TwifterClient().lists_list(screen_name: "_SNQ") try await TwifterClient().lists_members(list_id: 1517792406514839552) try await TwifterClient().lists_memberships(user_id: 1218659670) try await TwifterClient().lists_memberships(screen_name: "_SNQ") try await TwifterClient().lists_ownerships(user_id: 1218659670) try await TwifterClient().lists_ownerships(screen_name: "_SNQ") try await TwifterClient().lists_show(list_id: 1517792406514839552) try await TwifterClient().lists_statuses(list_id: 1517792406514839552) try await TwifterClient().lists_subscribers(list_id: 1517792406514839552) try await TwifterClient().lists_subscriptions(user_id: 1218659670) try await TwifterClient().lists_subscriptions(screen_name: "_SNQ") try await TwifterClient().search_tweets(q: "Swift") try await TwifterClient().statuses_lookup(id: [1488101267243429889, 1516619027288043521]) try await TwifterClient().statuses_retweeters_ids(id: 1488101267243429889) try await TwifterClient().statuses_retweets(id: 1488101267243429889) try await TwifterClient().statuses_show(id: 1488101267243429889) try await TwifterClient().statuses_user_timeline(user_id: 1218659670) try await TwifterClient().statuses_user_timeline(screen_name: "_SNQ") try await TwifterClient().trends_available() try await TwifterClient().trends_closest(lat: 35.79449997305192, long: 139.79078800000002) try await TwifterClient().trends_place(id: 1110809) try await TwifterClient().users_lookup(user_id: [1218659670, 1468966997438640128]) try await TwifterClient().users_lookup(screen_name: ["_SNQ", "Shadow_Ban_Bot"]) try await TwifterClient().users_search(q: "_SNQ") try await TwifterClient().user_show(user_id: 1218659670) try await TwifterClient().user_show(screen_name: "_SNQ")
EX) Get User ID
import SwiftUI import Twifter struct ContentView: View { var body: some View { Button(action: { Task { let user_info = try await TwifterClient().user_show(screen_name: "_SNQ") guard let id = user_info["id"] else { return } print(id) } }) { Text("Get User ID") } } }
- Requirements -
Enclose with Task
Task { }
Add try await
try await TwifterTwifterClient().user_show(screen_name: "_SNQ")
Issues and PRs are welcome, even for minor improvements and corrections.