gpt4 book ai didi

scala play twitter api oauth 身份验证不起作用

转载 作者:行者123 更新时间:2023-12-02 18:27:23 27 4
gpt4 key购买 nike

使用 play 2.4 通过 oauth 访问 twitter api。我在 Twitter 上创建了一个应用程序,并使用 secret 创建了 key 和 token 。在 Twitter 上为我的应用程序创建了一个 URL,因为它实际上不存在。并在回调 url 上使用相同的组成 url。在本地主机上运行应用程序。使用来自 twitter 的curl 生成的命令来模拟身份验证按预期工作,因此我的 key 和 token 是有效的。

运行代码时得到此响应:

错误 401 未经授权

这是主要 Play 代码:

import play.api._
import play.api.mvc._
import play.api.libs.concurrent.Execution.Implicits._
import play.api.Play.current
import play.api.libs.oauth.{ConsumerKey,RequestToken}
import scala.concurrent.Future
import play.api.libs.ws._
import play.api.libs.oauth.OAuthCalculator
import play.api.libs.iteratee._

class Application extends Controller {

def index = Action {
Ok(views.html.index("Your new application is ready."))
}

val loggingIteratee = Iteratee.foreach[Array[Byte]] { array => Logger.info(array.map(_.toChar).mkString) }

def tweets = Action.async {
credentials.map {
case (consumerKey, requestToken) =>
println(consumerKey.key.toString())
println(consumerKey.secret.toString())
println(requestToken.token.toString())
println(requestToken.secret.toString())
WS
.url("https://stream.twitter.com/1.1/statuses/sample.json")
.sign(OAuthCalculator(consumerKey, requestToken))
.withQueryString("track" -> "reactive")
.get()
.map { response =>
Ok(response.body)
}
}getOrElse{
Future{
InternalServerError("twitter credentials missing")
}
}
}

def credentials :Option[(ConsumerKey,RequestToken)] = for {
apiKey <- Play.configuration.getString("twitter.apiKey")
apiSecret <- Play.configuration.getString("twitter.apiSecret")
token <- Play.configuration.getString("twitter.token")
tokenSecret <- Play.configuration.getString("twitter.tokenSecret")
}yield (ConsumerKey(apiKey,apiSecret),RequestToken(token,tokenSecret) )

}

最佳答案

我认为问题在于你使用了虚假的 Twitter API。如前所述here您必须使用 Twitter API 1.1,因此您的网络服务的 URL 应为:.url("https://stream.twitter.com/1.1/statuses/sample.json")

关于scala play twitter api oauth 身份验证不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30895905/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com