我一直在尝试使用SimpleAuth创建一个iOS应用来验证Instagram。
在我的AppDelegate.swift中,我有:
SimpleAuth.configuration()["instagram"] = ["client_id": "MY-CLIENT-ID", SimpleAuthRedirectURIKey: "MY-REDIRECT-URL"]
(显然,在需要的地方插入客户端ID和重定向URI)
在我的ViewController.swift中,我有:
@IBAction func instagramAuthenticate(sender: AnyObject) {
SimpleAuth.authorize("instagram", options: ["scope" : ["likes"]], completion: {
(responseObject : AnyObject!, error : NSError!) -> Void in
println("\(responseObject)")
})
}
出于某种原因,当用户授权我的应用时,responseObject似乎返回'nil'。可能的意思出了问题。
我对Swift / iOS比较新,我不确定我做错了什么。感谢
答案 0 :(得分:1)
原来我的重定向URI是它返回nil的原因。我改变了它,一切都很完美!感谢HorseT在上面的评论中。
编辑:下面有更深入的答案
可以找到以下所有信息here。
首先,您必须在AppDelegate.swift
//Instagram Confifuration
SimpleAuth.configuration()["instagram"] = ["client_id": "YOUR-CLIENT-ID", SimpleAuthRedirectURIKey: "myApp://Auth/instagram"]
确保SimpleAuthRedirectURIKey
与instagram developers page上的应用设置中的SimpleAuth.authorize("instagram", options: ["scope" : ["basic", "comments", "likes", "relationships"]], completion: {
(responseObject : AnyObject!, error : NSError!) -> Void in
if (responseObject != nil) {
var instagramResponse = responseObject as! NSDictionary
var accessToken : String = instagramResponse["credentials"]!["token"] as! String
println(accessToken)
} else {
println(error.localizedDescription)
}
}
相同。
接下来,您需要授权用户。
{{1}}
这只是获取响应并打印accessToken。
从此处开始,您可以访问endpoints以检索更多数据。
希望这有帮助!