1
스칼라에 대해 매우 신입생입니다. Play에서 Instagram API에 액세스하려고합니다! 스칼라.재생! 비동기 웹 요청으로 프레임 워크 구성하기
def authenticate = Action {
request =>
request.getQueryString("code").map {
code =>
WS.url("https://api.instagram.com/oauth/access_token")
.post(
Map("client_id" -> Seq(KEY.key), "client_secret" -> Seq(KEY.secret), "grant_type" -> Seq("authorization_code"),
"redirect_uri" -> Seq("http://dev.my.playapp:9000/auth/instagram"), "code" -> Seq(code))
) onComplete {
case Success(result) => Redirect(controllers.routes.Application.instaline).withSession("token" -> (result.json \ "access_token").as[String])
case Failure(e) => throw e
}
}
Redirect(controllers.routes.Application.index)
}
응용 프로그램이 실행되면, 마지막 리디렉션 전에 성공의 경우 재 발생합니다. 제발 말해줘, 어떻게 피하십시오. 또한, 제 코드에있는 나쁜 습관에 대해 알려주십시오.
완료 대기 위해 기다리고 있습니다 동반자 객체를 사용해보십시오 : Await.ready ($ futurevar, Duration.Inf) –
을 절대로하지, 지금까지 플레이 응용 프로그램에 Await.ready, Await.result 또는 Await.anything를 사용 . 교착 상태와 모든 종류의 다른 것들에 빠지게 될 것입니다. –