2016-07-20 4 views
2

저는 Yelp API로 작업하기위한 작은 신속한 프로그램을 OAuth-1 이상으로 만들었습니다. HMAC-SHA1 서명을 생성하려고합니다.OAuth 1 서명을 신속하게 생성하는 방법을 찾고 있습니다.

고객 키, 비밀 키, 토큰 및 토큰 비밀이 있습니다.

  1. oauth_consumer_key
  2. 의 oauth_token
  3. oauth_signature_method = (HMAC-SHA1)
  4. oauth_signature
  5. :

    내가 아는 바로는

    , OAuth를 1 API 요청을 만들기 위해, 우리는 다음과 같은 속성이 필요합니다

  6. oauth_timestamp
  7. oauth_nonce

어떻게 # 4,5,6

내가 다른 this을 보였지만, 도움이되지 않았다 생성 않습니다.

TIA!

+0

당신이 있으 제 3 자 라이브러리를 사용하지 않고 이것을 알아 냈습니까? –

+0

타사 라이브러리없이 솔루션을 얻었습니까? –

답변

0

이 라이브러리 OAuthSwift을 사용할 수 있으며, 당신이 RxSwift + 모야 작업하는 경우이 사람은 당신에게 완벽하게 RxSocialConnect-iOS

1

아주 늦게 반응을 맞는 있지만 OAuth 1.0을 추가 확장을 사용하기 쉽고 매우 가볍고 스위프트 3 유지 URLRequest 에의 기능

OhhAuth이라고합니다. Cocoa Pod 또는 Swift 패키지 관리자로 쉽게 설치할 수 있습니다.

pod 'OhhAuth' 

내가 트위터 API와 상호 작용하는 방법에 대한 사용 예를 추가 할 것입니다 : 당신이 서명 만 관심이 있다면

let cc = (key: "<YOUR APP CONSUMER KEY>", secret: "<YOUT APP CONSUMER SECRET>") 
let uc = (key: "<YOUR USER KEY>", secret: "<YOUR USER SECRET>") 

var req = URLRequest(url: URL(string: "https://api.twitter.com/1.1/statuses/update.json")!) 

let paras = ["status": "Hey Twitter! \u{1F6A7} Take a look at this sweet UUID: \(UUID())"] 

req.oAuthSign(method: "POST", urlFormParameters: paras, consumerCredentials: cc, userCredentials: uc) 

let task = URLSession(configuration: .ephemeral).dataTask(with: req) { (data, response, error) in 

    if let error = error { 
     print(error) 
    } 
    else if let data = data { 
     print(String(data: data, encoding: .utf8) ?? "Does not look like a utf8 response :(") 
    } 
} 
task.resume() 

, 당신은 사용할 수 있습니다

OhhAuth.calculateSignature(url: URL, method: String, parameter: [String: String], 
consumerCredentials cc: Credentials, userCredentials uc: Credentials?) -> String