2015-07-10 3 views
2

У меня есть приложение, которое позволяет пользователю транслировать песню из spotify. Я использую быстро. Я пытаюсь разрешить пользователю входить в систему с помощью учетной записи spotify, но я ничего не получил взамен. В моем приложении открылось сафари, чтобы открыть страницу входа на сайт. Я сделал логин, но ничего не возвращает.Как правильно войти, чтобы определить?

Я убедиться, что мой callbackuri точно так же, как и в моем Spotify странице Дев, мои схемы URL-адрес является первым разделом перед двоеточием моего обратного вызова Урия, и мой otherlinker наполнен -ObjC

Вот что я пытался

Войти действие:

let spotifyAuth = SPTAuth.defaultInstance() 
    spotifyAuth.clientID = kSpotifyClientID 
    spotifyAuth.redirectURL = NSURL(string: kSpotifyCallBackUrl) 
    spotifyAuth.requestedScopes = [SPTAuthStreamingScope] 

    let spotifyLoginUrl : NSURL = spotifyAuth.loginURL 

    UIApplication.sharedApplication().openURL(spotifyLoginUrl) 

мой 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 
} 

и мой viewdidload:

NSNotificationCenter.defaultCenter().addObserver(self, selector: "updateAfterFirstlogin", name: "spotifyLoginSuccesfull", object: nil) 
    // Do any additional setup after loading the 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") 

    } 

Итак, я-то отсутствует? Любые предложения были бы замечательными

+0

В чем печатается заявление? – myles

+0

@myles Я получил >> Ошибка домена = com.spotify.ios-sdk.playback Код = 8 «Ошибка входа в Spotify из-за недопустимых учетных данных». UserInfo = 0x7f840bf807b0 {NSLocalizedDescription = Ошибка входа в Spotify из-за недопустимых учетных данных.} –

ответ

0

убедитесь, что ваш обратный вызов uri - это все строчные буквы, у меня были проблемы с этим.

Смежные вопросы