Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 正在寻找一种快速生成OAuth 1签名的方法_Ios_Swift_Oauth_Yelp - Fatal编程技术网

Ios 正在寻找一种快速生成OAuth 1签名的方法

Ios 正在寻找一种快速生成OAuth 1签名的方法,ios,swift,oauth,yelp,Ios,Swift,Oauth,Yelp,我正在开发一个小型swift程序,通过OAuth-1使用Yelp API。我希望生成HMAC-SHA1签名 我有客户密钥、密钥、令牌和令牌密钥 据我所知,要使用OAuth 1发出API请求,我们需要以下属性: oauth_消费者_密钥 oauth_代币 oauth_签名_方法=(HMAC-SHA1) oauth_签名 oauth_时间戳 现在 如何生成#4,5,6 我看了看其他人,但没帮上忙 蒂亚 您可以使用这个库,如果您使用RxSwift+Moya,这个库将非常适合您非常晚的响应,但我保留了一

我正在开发一个小型swift程序,通过OAuth-1使用Yelp API。我希望生成HMAC-SHA1签名

我有客户密钥、密钥、令牌和令牌密钥

据我所知,要使用OAuth 1发出API请求,我们需要以下属性:

  • oauth_消费者_密钥
  • oauth_代币
  • oauth_签名_方法=(HMAC-SHA1)
  • oauth_签名
  • oauth_时间戳
  • 现在
  • 如何生成#4,5,6

    我看了看其他人,但没帮上忙


    蒂亚

    您可以使用这个库,如果您使用RxSwift+Moya,这个库将非常适合您

    非常晚的响应,但我保留了一个非常轻量级的Swift 3易于使用的扩展,它将OAuth 1.0a功能添加到URLRequest中

    它叫。可通过可可豆或Swift软件包管理器轻松安装

    pod 'OhhAuth'
    
    我将添加一个关于如何与Twitter API交互的使用示例:

    let cc = (key: "<YOUR APP CONSUMER KEY>", secret: "<YOUR 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()
    

    您是否在不使用第三方库的情况下解决了这一问题?您是否在不使用第三方库的情况下获得了解决方案?我只对签名感兴趣,但我需要使用其他参数生成签名:oauth_nonce,oauth_timestamp,这是可能的?@milletoine
    oauth\u nonce
    oauth\u timestamp
    是标准的一部分,因此我的库已经自动为您提供了这一功能。您可以在这里进行验证:或者只需查看生成的签名字符串,它将包括参数。
    OhhAuth.calculateSignature(url: URL, method: String, parameter: [String: String],
    consumerCredentials cc: Credentials, userCredentials uc: Credentials?) -> String