i have application allow user stream song spotify. i'm using swift here. i'm trying allow user login spotify account, got nothing in return. app did open safari in order open spotify login page. i've done login still returns nothing.
i've make sure callbackuri same in spotify dev page, url schemes first section before colon of callback uri, , otherlinker filled -objc
here i've tried
login action:
let spotifyauth = sptauth.defaultinstance() spotifyauth.clientid = kspotifyclientid spotifyauth.redirecturl = nsurl(string: kspotifycallbackurl) spotifyauth.requestedscopes = [sptauthstreamingscope] let spotifyloginurl : nsurl = spotifyauth.loginurl uiapplication.sharedapplication().openurl(spotifyloginurl) my appdelegate:
func application(application: uiapplication, openurl url: nsurl, sourceapplication: string?, annotation: anyobject?) -> bool{ println("rene jos1") if (sptauth.defaultinstance().canhandleurl(url)) { println("rene jos2") sptauth.defaultinstance().handleauthcallbackwithtriggeredauthurl(url, callback: { (error : nserror?, session : sptsession?) -> void in println("rene jos3") if error != nil { println("auth error : \(url.description)") return } let userdefaults = nsuserdefaults.standarduserdefaults() let sessiondata = nskeyedarchiver.archiveddatawithrootobject(session!) userdefaults.setobject(sessiondata, forkey: "spotifysession") userdefaults.synchronize() nsnotificationcenter.defaultcenter().postnotificationname("spotifyloginsuccesfull", object: nil) }) return true } if (fbsdkapplicationdelegate.sharedinstance().application(application, openurl: url, sourceapplication: sourceapplication, annotation: annotation)) { return true } return false } and viewdidload:
nsnotificationcenter.defaultcenter().addobserver(self, selector: "updateafterfirstlogin", name: "spotifyloginsuccesfull", object: nil) // additional setup after loading view. spotifyloginbutton.hidden = true let userdefaults = nsuserdefaults.standarduserdefaults() if let sessionobj : anyobject = nsuserdefaults.standarduserdefaults().objectforkey("spotifysession") { println("rene 2") let sessiondataobj : nsdata = sessionobj as! nsdata let session = nskeyedunarchiver.unarchiveobjectwithdata(sessiondataobj) as! sptsession self.playusingsession(session) if !session.isvalid() { sptauth.defaultinstance().renewsession(session, callback: { (error : nserror!, newsession : sptsession!) -> void in let sessiondata = nskeyedarchiver.archiveddatawithrootobject(session) userdefaults.setobject(sessiondata, forkey: "spotifysession") userdefaults.synchronize() self.session = newsession self.playusingsession(newsession) println("rene 3") }) }else{ println("error refreshing new spotify session") } }else{ spotifyloginbutton.hidden = false println("rene 4") } so, missing something? suggestion great
make sure callback uri lowercase letters, had issues that.
Comments
Post a Comment