Twitter Sign-In for iOS
Let Twitter users into your apps quickly and easily by using inner browser or twitter app.
It is interface to the Twitter API, the sign-in process is lightly and clearly.
No dependencies, framework file is tiny.
Supports iOS 12+.
Getting Started
- Generate your Twitter API keys through theĀ Twitter developer apps dashboard.
- Prepare 3 required parameters: ConsumerKey , ConsumerSecret , CallbackURL
- Install library using instructions below.
Install using Cocoapods
To add TwitterSignIn to your app, add TwitterSignIn
to your Podfile.
pod 'TwitterSignIn'
Usage Examples
Import
import TwitterSignIn
Config your parameters before call SignIn
TwitterSignIn.sharedInstance.consumerKey = "Your ConsumerKey Value"
TwitterSignIn.sharedInstance.consumerSecret = "Your ConsumerSecret Value "
TwitterSignIn.sharedInstance.callbackUrl = "Your CallbackURL Value"
Note Take Care Your ConsumerSecret, you shouldn’t be exposed to the public.
Sign-In with Twitter App
Warning App authorization is not recommended! It is implemented by UIApplication.open(url:), and it is easy to expose the consumerSecret and consumerKey. This may create unknown and dangers risks. Sign-In with twitter app is off by default.
If you really need to use Sign-In with twitter app, follow this step
1.set the appAuthEnable
to ture
TwitterSignIn.sharedInstance.appAuthEnable = true
2.add twitterauth
to LSApplicationQueriesSchemes in Plist file
<key>LSApplicationQueriesSchemes</key>
<array>
<string>twitterauth</string>
</array>
3.config you CallbackURL
For use Sign-In with Twitter App, you need to set your CallbackURL to the specified value from Twitter Dashboard. It is start with twitterkit-
and append you ConsumerKey.
Like:twitterkit-YouConsumerKey://
4.add the specified CallbackURL to CFBundleURLTypes in Plist file
the URLSchemes value is with out ://
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>twitterkit-YouConsumerKey</string>
</array>
</dict>
</array>
5.add handleUrl
to openUrl in App Delegate
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
TwitterSignIn.sharedInstance.handleUrl(url)
return true
}
Sign-In
If set appAuthEnable
to true, this library will try to call Twitter App first. If Twitter App not installed, will call inner browser.
TwitterSignIn.sharedInstance.signIn { user, error in
if let error = error {
//handle failed with TwitterSignInError
//the library collect all error code into TwitterSignInError
//Like: if (error.code == TwitterSignInError.CancelFromApp) { ... }
return
}
//handle success from user
//user.token: for server verification
//user.secret: for server verification
//user.userId: this value return from Web auth
//user.userName: this value return from App auth
}