2016-07-20 6 views
2

私はYelp APIを使用する小さなスピーディーなプログラムを開発中ですOAuth-1。私はHMAC-SHA1署名を生成しようとしています。OAuth 1のシグネチャを生成するための迅速な方法を探しています

私は顧客キー、秘密鍵、トークン、およびトークンの秘密を持っています。私が知っていることから、

、OAuthを1とAPIリクエストを作るために、我々は次の属性が必要になります。

  1. oauth_consumer_key
  2. oauth_token
  3. oauth_signature_method =(HMAC-SHA1)
  4. oauth_signature
  5. oauth_timestamp
  6. oauth_nonce

は、どのように私は他のthisに見えたが、助けにはならなかった#4,5,6

を生成します。

TIA!

+0

はあなたを持っていますサードパーティ製のライブラリを使用せずにこれを理解しましたか? –

+0

サードパーティライブラリなしでソリューションを入手できましたか? –

答えて

0

あなたはこのライブラリOAuthSwiftを使用することができ、あなたがRxSwift +モヤで作業している場合は、この1はあなたに完全にRxSocialConnect-iOS

1

かなり遅く応答に適合しますが、私はOAuthの1.0を追加する拡張機能を使用して簡単に非常に軽量スウィフト3保ちますURLRequestの機能

OhhAuthと呼ばれています。 Cocoa PodsやSwiftパッケージマネージャーで簡単にインストールできます。

pod 'OhhAuth' 

私はTwitterの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 
関連する問題