A ViewController for Instagram authentication.
A UIViewController
subclass that handles showing the Instagram login page, the authentication dance and finally returning the access token that can be used to communicate with the Instagram API afterwards.
Inspired by Instagram-Auth-iOS. Used PhotoBrowser as a stepping stone. I rewrote the login part in Swift, replced third-party library code with built-in Cocoa Touch frameworks and made it reusable.
- iOS 8.0+
- Xcode 7.3<
- Download or clone the repo.
- Open the source folder.
- Add
InstagramAuthViewController.swift
to your project. - Profit(?)!
- Go to Instagram's developer portal and register your application.
- Take note of the client ID, client secret and redirect URI values.
let clientId = "<YOUR CLIENT ID>"
let clientSecret = "<YOUR CLIENT SECRET>"
let redirectUri = "<YOUR REDIRECT URI>"
- Simply add the
InstagramAuthViewController
as theUIViewController
's class in the Identity inspector.
let instagramAuthViewController = segue.destinationViewController as! InstagramAuthViewController
instagramAuthViewController.delegate = self
instagramAuthViewController.clientId = clientId
instagramAuthViewController.clientSecret = clientSecret
instagramAuthViewController.redirectUri = redirectUri
- Initialize an instance of
InstagramAuthViewController
and present it like a normal ViewController.
let instagramAuthViewController = InstagramAuthViewController(clientId: clientId, clientSecret: clientSecret, redirectUri: redirectUri)
instagramAuthViewController.delegate = self
presentViewController(instagramAuthViewController, animated: true, completion: nil)
- Either way, don't forget to implement the
InstagramAuthDelegate
.
func instagramAuthControllerDidFinish(accessToken: String?, error: NSError?) {
if let error = error {
print("Error logging in to Instagram: \(error.localizedDescription)")
} else {
print("Access token: \(accessToken!)")
}
}
I would love for you to contribute to InstagramAuthViewController, check the LICENSE
file for more info. Pull requests, bug fixes, improvements welcome.
Isuru Nanayakkara – @IJNanayakkara – [email protected]
Distributed under the MIT license. See LICENSE
for more information.