2012-11-12 5 views
1

저는 Facebook의 캔버스 페이지 내에 배치 될 Play 2.0.1 애플리케이션을 작성하고 있습니다. Facebook API에 restFB를 사용하고 있습니다.Play 2.0.1 및 RestFB를 사용하여 서명 된 Facebook JSON에 액세스

https://developers.facebook.com/tools/explorer?method=GET에 수동으로 액세스 토큰을 생성하면 Facebook 응용 프로그램에서 Facebook 사용자 이름에 액세스하고 Facebook의 Canvas 페이지 iFrame에서 렌더링 할 수 있습니다.

그래서, 내 응용 프로그램 컨트롤러는 POST 수신이 같은 페이지를 렌더링 :

내 경로는 다음과 같이 설정되어
public static Result handle_fb_post() {   
    return redirect(routes.canvas.fb_render_profile_page()); 
} 

public static Result fb_render_profile_page() { 
    String accessToken = "<access token copied from facebook graph explorer>";  
    DefaultFacebookClient().getExtendedAccessToken(application_id, application_secret); 
    FacebookClient facebookClient = new DefaultFacebookClient(accessToken); 
    User fbUser = facebookClient.fetchObject("me", com.restfb.types.User.class); 
    return ok(views.html.fbuser.render(fbUser)); 
} 

:

POST /fbcanvas/ controllers.FBCanvas.handle_fb_post() 
GET  /fbcanvas/profile controllers.FBCanvas.fb_render_profile_page() 
그러나

, 어떻게 내가 서명에 액세스 할 수 있습니다 페이스 북에서 나를 POST로 보내는 JSON? 여기에 설명 된대로 사용자의 액세스 토큰 (사용자가 내 앱을 승인했다고 가정)을 포함한다고 생각합니다.

https://developers.facebook.com/docs/samples/canvas/ ("signed_request 매개 변수"섹션 참조)

Java, PHP, Javascript 및 Python에 대한 몇 가지 예제가 있지만 Play 2 또는 RestFB에서이를 수행하는 방법을 설명하는 것을 찾을 수 없습니다. 여러 가지 접근 방식을 시도했지만 Play 2에서 서명 된 요청에 액세스하는 방법을 찾을 수 없습니다.

누구에게 도움을주고 설명 할 수 있습니까? 토큰은 POST 요청에서 JSON으로 전송되면

답변

0

, 당신은

def handle_post() = Action { implicit request => 
    val jsonBody = request.body.asJson 
    //process it 
} 
를 통해 그것을 잡을 수
관련 문제