Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.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
播放scala Oauth Twitter示例并重定向_Scala_Playframework_Oauth 2.0_Twitter Oauth - Fatal编程技术网

播放scala Oauth Twitter示例并重定向

播放scala Oauth Twitter示例并重定向,scala,playframework,oauth-2.0,twitter-oauth,Scala,Playframework,Oauth 2.0,Twitter Oauth,下面是使用Oauth和Twitter的播放示例 在Play框架中,我仍在学习如何使用重定向和路由。如何设置routes文件和Appliction.scala文件来处理此重定向 Redirect(routes.Application.index).withSession("token" -> t.token, "secret" -> t.secret) 路线是这样的吗 GET /index controllers.Application.index(String, String)

下面是使用Oauth和Twitter的播放示例

在Play框架中,我仍在学习如何使用重定向和路由。如何设置routes文件和Appliction.scala文件来处理此重定向

Redirect(routes.Application.index).withSession("token" -> t.token, "secret" -> t.secret)
路线是这样的吗

GET /index  controllers.Application.index(String, String)
链接到Play框架文档和示例代码

对象控制器{
val键=消费市场(“xxxxx”、“xxxxx”)
val TWITTER=OAuth(ServiceInfo(
"https://api.twitter.com/oauth/request_token",
"https://api.twitter.com/oauth/access_token",
"https://api.twitter.com/oauth/authorize“,键),
(错误)
def authenticate=操作{request=>
request.queryString.get(“oauth\u验证器”).flatMap(\uu.headOption).map{verifier=>
val tokenPair=sessionTokenPair(请求).get
//我们得到了验证器;现在获取访问令牌,存储它并返回索引
retrieveAccessToken(tokenPair,verifier)匹配{
案例右侧(t)=>{
//我们在OAuth对象中收到了授权令牌-在继续之前存储它
重定向(routes.Application.index).with session(“token”->t.token,“secret”->t.secret)
}
案例左侧(e)=>抛出e
}
}格托莱斯先生(
TWITTER.RetrieverRequestToken(“http://localhost:9000/auth)匹配{
案例右侧(t)=>{
//我们在OAuth对象中收到了未经授权的令牌-在继续之前存储它
重定向(TWITTER.redirectUrl(t.token)).withSession(“token”->t.token,“secret”->t.secret)
}
案例左侧(e)=>抛出e
})
}
def sessionTokenPair(隐式请求:RequestHeader):选项[RequestToken]={
为了{

令牌如果您的路线如下:

GET/index controllers.Application.index(param1:String,param2:String)

然后,反向路径将如下所示:

routes.Application.index(“p1”、“p2”)

这将导致如下结果:

/index?param1=p1¶m2=p2


确保您正在查看的文档版本正确,因为
2.2.x
您需要此url:

事实证明,我在路由和重定向方面遇到如此多间歇性问题的原因是play版本、scala版本和ScalaIDE for Eclipse版本的组合。使用play版本scala版本2.10.4和ScalaIDE版本2.10.x解决了路由和重定向问题

Twitter示例需要以下import语句

import play.api.libs.oauth.ConsumerKey
import play.api.libs.oauth.ServiceInfo
import play.api.libs.oauth.OAuth
import play.api.libs.oauth.RequestToken

EECOLOR您的代码消除了我遇到的路由错误。当我将示例代码放在名为twitter.scala的文件中时,我会在这一行收到一条重定向错误消息,但如果我将代码放在Application.scala文件重定向(routes.Application.index)中,它就会起作用。使用Session(“token”->t.token,“secret”->t.secret)”。执行所有操作{request=>必须在Application.scala文件中吗?不,它们不在。在大多数情况下,您的类应该扩展
Controller
,以确保您拥有所有与HTTP相关的工具。但是,这不是强制性的,请查看
Controller
的源代码以查看它提供了什么。
import play.api.libs.oauth.ConsumerKey
import play.api.libs.oauth.ServiceInfo
import play.api.libs.oauth.OAuth
import play.api.libs.oauth.RequestToken