이것은 명백한 문제처럼 보일 수 있지만 캔버스 응용 프로그램 및 facebook csharp sdk에 관한 페이스 북 개발자 사이트를 살펴본 결과 내 질문에 대한 답을 찾지 못했습니다.여러 페이지 Facebook 캔버스 응용 프로그램의 사이트 구조
웹 양식을 사용하여 facebook-C# -sdk v5.4x 또는 abouts, .net 3.5를 사용하고 있습니다.
데스크톱 용 캔버스 앱에는 여러 진입 점이 있습니다.
https://apps.facebook.com/my_canvas_app/Default.aspx
https://apps.facebook.com/my_canvas_app/Register.aspx?EventID=12345
https://apps.facebook.com/my_canvas_app/SomeOtherPage.aspx
내 첫 번째 질문은 페이스 북에서 첫 번째 요청에서, 나는이 (페이스 북 - C#을가가 처리한다 -sdk하는), I는 OAuth는 토큰을 signed_request
받을 수있다 약 2 시간 동안 유효합니다. 이 oauth 토큰을 다시 작성하고 oauth 요청 (그래프 쿼리 등)을 시도하기 전에 유효한지 확인하는 올바른 방법은 무엇입니까?
지금 내 모든 링크 (예 : Default.aspx에서)는 <a href="https://apps.facebook.com/my_canvas_app/SomeOtherPage.aspx" target="_top">Go to Some Other Page</a>
처럼 보이며, 결국 페이스 북으로 왕복하며 새로운 signed_request
이 생겨 결국 갱신 된 oauth 토큰이됩니다.
둘째, 내 사이트에 asp.net을 통한 일반 양식 다시 게시를 수행 할 때 signed_request
이 양식에 나와있어 응용 프로그램에 문제가없는 것 같습니다. <input type="hidden" name="signed_request" value="<%=Request.Form["signed_request"]%>" />
. 이것을 생략하면 포스트 백에는 oauth 정보가 없으므로 실패합니다. 이 방법이 캔버스 응용 프로그램에서 다시 게시를 수행하는 올바른 방법입니까? csharp-sdk의 소스에서 요청간에 oauth 토큰을 보존하기 위해 세션에 저장되는 것이 아무것도 없기 때문에 여러 페이지/포스트 백에 숨겨진 입력 및 target = "_ top"링크가 필요합니다. 나는이 공제에서 정정합니까?
셋째, iframe없이 모바일 캔버스 앱을 개발할 때 내 첫 번째 가정이 맞다면 내 페이지의 모든 링크가 여전히 https://apps.facebook.com/my_canvas_app/MobilePage.aspx
으로 이동해야합니다.
누구든지 이러한 주제에 대해 밝힐 수 있다면 크게 감사하겠습니다.
감사합니다.
자바 스크립트를 사용하지 않고 모든 oauth를 수행하려고합니다. javascript가 필요한 경우 왜 'signed_request'를 사용합니까? 나의 이해는'signed_request'가 javascript lib를 사용하는 것에 대한 대안이라는 것이다. – Matthew
서버 측 인증을 수행하는 경우 액세스 토큰은 약 2 시간이 아니라 약 60 일 동안 유효해야합니다 (https://developers.facebook.com/roadmap/offline-access-removal/ 참조). – CBroe