播放! 2.5.3 / Scala Windows 10(也在Mac OS和Linux上测试过)
我正在为我的Play构建OAuth 1.0a功能!应用程序(成熟的2岁以上应用程序)和QuickBooks Online。我已经成功构建了第一个验证并返回有效令牌的部分。秘密,然后我存储在我的数据库中。
我遇到的问题是当我尝试使用令牌签署API调用时。首先,我知道令牌是好的和有效的,因为在https://www.hurl.it/上测试它会返回预期的数据。但是,当我从Play内部以编程方式调用相同的API时!应用程序,令牌/签名被拒绝(即我收到消息说我必须进行身份验证)。
这是我调用API的代码示例。我的智慧结束了,我已经尝试了所有我能想到的东西......让我们放心地知道在使用投掷时令牌是有效的,但我不能为我的生活找出Play中的问题!
def testWS = Action.async {
val HEADERS = List("Accept" -> "application/json, format=json", "Content-Type" -> "application/json", "Accept-Encoding" -> "gzip, deflate")
val consKey = ConsumerKey("q********************D", "G********************b")
val reqToken = RequestToken("q********************t", "d********************7")
val oauthCalc = OAuthCalculator(consKey, reqToken)
ws.url("https://appcenter.intuit.com/api/v1/connection/reconnect")
//.withHeaders(HEADERS: _*)
.sign(oauthCalc)
.get
.map{ resp => Ok(resp.body) }
}
以下是生成的标题的样子: 授权:OAuth oauth_consumer_key =“q ******************** D”,oauth_token =“q **************** **** H“,oauth_signature_method =”HMAC-SHA1“,oauth_signature =”zt34J%2BubLgpT%2FdTG8bXj2SWdRRE%3D“,oauth_timestamp =”1465414901“,oauth_nonce =”YIiN2lxGnNMhDs9pF3HlBQ%3D%3D“,oauth_version =”1.0“ 连接:保持活力 主持人:localhost:9000 接受: / 用户代理:AHC / 1.0