IOSLinkedInAPI icon indicating copy to clipboard operation
IOSLinkedInAPI copied to clipboard

Swift version for Xcode 6.1

Open dethell opened this issue 11 years ago • 3 comments

Here is what I did for swift in case anyone needs it. Note, this is using the fork that allows AFNetworking 1.x since RestKit requires that still.

// MARK: LinkedIn
var linkedInClient: LIALinkedInHttpClient {
    let application = LIALinkedInApplication(redirectURL: "http://api.sessionradar.com/linkedin", clientId: kLinkedInClientId, clientSecret: kLinkedInClientSecret, state: kLinkedInState, grantedAccess: ["r_emailaddress"])
    return LIALinkedInHttpClient(forApplication: application, presentingViewController: self)
}

@IBAction func didTapConnectWithLinkedIn(sender: AnyObject) {
    self.linkedInClient.getAuthorizationCode({ (code: String!) -> Void in
        self.linkedInClient.getAccessToken(code, success: { (accessTokenData: [NSObject: AnyObject]!) -> Void in
            let accessToken = accessTokenData["access_token"] as String
            let urlPath = "https://api.linkedin.com/v1/people/~/email-address?oauth2_access_token=\(accessToken)&format=json"
            self.linkedInClient.getPath(urlPath, parameters: nil, success: { (operation: AFHTTPRequestOperation!, result: AnyObject!) -> Void in
                self.showActivityIndicator()
                let responseData = result as NSData!
                let userEmail = NSString(data: responseData, encoding: NSUTF8StringEncoding)
                // My Login code here that needs the LinkedIn Email
            }, failure: { (operation, error) -> Void in
                NSLog("error getting linked in data: \(error)")
            })
        }, failure: { (error) -> Void in
            NSLog("error getting linked in access token: \(error)")
        })
    }, cancel: { () -> Void in
        NSLog("LinkedIn authorization canceled")
    }) { (error) -> Void in
        NSLog("Error getting linkedin auth code: \(error)")
    }
}

dethell avatar Nov 15 '14 20:11 dethell

We can close this since it really isn't an active issue.

dethell avatar Nov 15 '14 21:11 dethell

Hi, I am testing with your code in swift and I get an error saying that self.linkedInClient does not have function getPath. Have you added it yourself or I just haven't imported all in my bridging file ?

deapam avatar Feb 18 '15 07:02 deapam

the getPath function is part of AFHTTPClient.h from which the LinkedInClient inherits.

dethell avatar Feb 18 '15 21:02 dethell