2011-03-09 2 views
17
내가 페이스 북 응용 프로그램 탭에서 일하고 있어요 여기에 설명 된대로 서명 요청 번들을 사용하고자하는

: http://developers.facebook.com/blog/post/462/페이스 북은 iframe 탭 서명 요청 항상 빈

내가 서명 요청을 풀어야 their example code를 사용하려고 해요 탭에 전달 된 것으로 가정하면 $_POST, $_GET$_REQUEST은 항상 비어 있습니다.

정확한 코드는 캔버스 페이지에서 작동하며 서명 된 요청을 구문 분석 할 수 있습니다.

내가 최근 발표에서 누락 된 것이 있습니까?

덧붙여서, 애플 리케이션은 시장에 공개되지 않고, 팬 페이지 내 탭이 인스톨되고 있습니다. 그게 효과를 낼 것입니까?

-eth

답변

40

그래, 알아 냈어! 앱을 구성 할 때 "탭 URL"을 "탭 /"으로 채 웁니다. 이렇게하면 탭 페이지에 대한 전체 URL을 만들었습니다. "http://www.example.com/myfacebookapp/tab/" 이 말이 저에게 의미가 있습니다.

분명히 페이스 북은이 점을 좋아하지 않는다. 'Tab URL'을 'tab/index.php'로 변경하면 앱 탭에 서명 된 요청이 표시되기 시작했습니다!

+0

바위에 등 인증. 이것은 지금 막 도움이되었습니다. – ceejayoz

+0

이것으로 해결되었습니다. 감사! –

+0

당신은 맞지만 부분적입니다. 이것은 Facebook의 문제가 아닙니다. Facebook은 개발자 영역에서 지정한 URL에 서명 된 요청을 보냅니다. 필자의 경우, 탭 URL로'mydomain.com/tab /'을 삽입했는데, 선택하는 프레임 워크가'mydomain.com/tab /'을'mydomain.com/tab'으로 리다이렉트합니다. (슬래쉬). 이것은 GET 리디렉션 (간단히 말하면)이므로 서명 된 요청은 손실됩니다. 귀하의 경우에는 서명되지 않은 요청 손실을 유발하는 후행 슬래시가있는 비 후행 슬래시 URL에서 URL로 리디렉션됩니다. – Andreyco

4

감사합니다. Seth와 (과) 동일한 문제가 있습니다. 앱에서 서명 된 요청을받을 수 있습니다. 캔버스 페이지가 아니라 내 페이지 탭의. 설명을 위해

  1. 는 이동이의 페이스 북 통합 탭
  2. 을 클릭하여 응용 프로그램
  3. 의 편집 설정에
  4. 클릭 www.facebook.com/developers/하기 탭 URL 필드의 페이지 탭 섹션 아래쪽에있는 index.php 페이지의 경로를 입력하십시오. 당신의 페이스 북 방문 페이지를위한 e

ex. 페이지가 www.foobar.com/facebook/tab/index.php에 있으면 "탭/인덱스"대신 "탭/인덱스 .php"(따옴표 제외)를 넣어야합니다.

며칠 동안 나가!

4

해결책을 찾았습니다 : 탭 URL의 끝에 "/"를 넣으면됩니다. 좋아요 : "http://domain.us/facebook/tab/"

그것은 나를 위해 일했고, 그것이 또한 당신을 위해 작동하는지 알려주세요!

+0

페이스 북에서 경고하지 않는다는 것이 너무 바보 같아서 팁을 주셔서 감사합니다. 시간이 많이 걸렸습니다. – destan

8

기본적으로 웹 서버가 요청을 받으면 리디렉션을 수행하는 것이 문제입니다. 귀하의 경우 http://www.example.com/myfacebookapp/tab/에서 http://www.example.com/myfacebookapp/tab/index.php으로 리디렉션 중입니다. 제 경우에는 http://www.example.com/myfacebookapp/tab에서 http://www.example.com/myfacebookapp/tab/으로 리디렉션되었습니다 (내 응용 프로그램은 .Net MVC에 내장되어 있으므로 파일 이름이 없지만 그 뒤에 슬래시가 있어야합니다).

따라서 표준 URL 주소의 경로는 실제 URL 인이며 웹 서버가 리디렉션하지 않는 것이 좋습니다.웹 서버가 리다이렉트를해야한다면 실제 페이지는 GET (POST가 아님)에 의해 가져오고 스크립트에는 signed_request 포스트 데이터가 제공되지 않습니다.

매우 실망 스럽습니다. 테스트 애플 리케이션이 작동하고 프로덕션 애플리케이션이 작동하지 않는 이유를 디버깅하는 데 1 시간 반을 보냅니다. 상황을 악화시키기 위해서, 나는이 대답을 알고 있었고, 문제가 무엇인지를 등록하지 않았다. 매우 짜증나!

+0

Canvas Apps는 '/'로 끝나야하기 때문에 안타깝게도이 작업을 수행 할 수 없습니다. –

+0

그럴 필요는 없었습니다. 나는 최근에 체크하지 않았지만 당신이 그곳에서 착각 한 것 같아요. –