2016-02-15 2 views
0

Я пытаюсь использовать OAuthSwift с API Yelp. Одним из необходимых параметров является requestTokenURL, authorizeURL, accessTokenURL; однако у меня уже есть токен от Yelp, и у Yelp нет URL-адреса авторизации. Не включая эти параметры дает мне ошибку. Каков правильный способ использования OAuthSwift с Yelp API? Спасибо.Как использовать YELP API с OAuthSwift?

func OAuthVerify(){ 
    let oauthswift = OAuth1Swift(
     consumerKey: "#", 
     consumerSecret: "#", 
     requestTokenUrl: "???", 
     authorizeUrl: "???", 
     accessTokenUrl: "???" 
    ) 
    oauthswift.authorizeWithCallbackURL(NSURL(string: "oauth-swift://oauth-callback/")!, success: { (credential, response, parameters) -> Void in 
     self.grabYelpData(oauthswift,consumerKey: "RZKQlWV3nqdB-74fZZRQeg") 
     }) { (error) -> Void in 
      print("error") 
    } 
} 

func grabYelpData(oauthswift: OAuth1Swift, consumerKey: String){ 
    let url :String = "https://api.yelp.com/v2/search?" 
    let parameters :Dictionary = [ 
     "term"   : "food", 
     //"api_key"  : consumerKey, 
     "location"  : "San Francisco", 
    ] 
    oauthswift.client.get(url, parameters: parameters, 
     success: { 
      data, response in 
      let jsonDict: AnyObject! = try? NSJSONSerialization.JSONObjectWithData(data, options: []) 
      print(jsonDict) 
     }, failure: { error in 
      print(error) 
    }) 
} 
+0

Эта библиотека может помочь использовать Yelp with Swift: https://github.com/dalequi/yelpitoff – Moritz

ответ

0

Я искал то же самое, и это единственное, что я нашел до сих пор, и это похоже на работу и вернуть соответствующие данные из Yelp.

let oauthswift = OAuth1Swift(
     consumerKey: "*********", 
     consumerSecret: "*************", 
     requestTokenUrl: "https://www.flickr.com/services/oauth/request_token", 
     authorizeUrl: "https://www.flickr.com/services/oauth/authorize", 
     accessTokenUrl: "https://www.flickr.com/services/oauth/access_token" 
    ) 

    oauthswift.client.credential.oauth_token = "*******" 
    oauthswift.client.credential.oauth_token_secret = "*******" 

    oauthswift.client.get("https://api.yelp.com/v2/search/...", 
     success: { 
      data, response in 
      let dataString = NSString(data: data, encoding: NSUTF8StringEncoding) 
      self.printYelpData(data) 
      print(dataString) 
     } 
     , failure: { error in 
      print(error) 
     } 
    ) 

Я пытался просто оставить requestTokenUrl и т.д. пустой, но это не сработало, так что я просто положить в URL, который был поддержан, а затем установить его после инициализации.

Я надеюсь, что это поможет!