2011-09-23 3 views
0

가능한 중복은 :
Why do I get an undefined index for signed_request in my facebook app?페이스 북의 캔버스 튜토리얼에 뭔가 빠졌습니까?

나는 일반에 질문을 게시 SO 그와 매우 유사하지만 그래서 페이스 북을 발견했다.

내가 복사하고 facebook canvas tutorial page에서이 코드를 붙여 넣을 경우 :

<?php 

    $app_id = "YOUR_APP_ID"; 

    $canvas_page = "YOUR_CANVAS_PAGE_URL"; 

    $auth_url = "http://www.facebook.com/dialog/oauth?client_id=" 
      . $app_id . "&redirect_uri=" . urlencode($canvas_page); 

    $signed_request = $_REQUEST["signed_request"]; 

    list($encoded_sig, $payload) = explode('.', $signed_request, 2); 

    $data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true); 

    if (empty($data["user_id"])) { 
      echo("<script> top.location.href='" . $auth_url . "'</script>"); 
    } else { 
      echo ("Welcome User: " . $data["user_id"]); 
    } 
?> 

방법은 $ auth_url가 호출되지 않은 경우 내가 이제까지 signed_request을받을 수 있나요? 아니면 PHP를 이해할 수 없습니다. 그것은 $ auth_url을 생성하지만 절대 가지 않기 때문에 $ signed_request는 절대로 채워지지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

편집 :

if (empty($data["user_id"])) { 
      echo("<script> top.location.href='" . $auth_url . "'</script>"); 

는 그 생성 : 나는 바보이고 apps.facebook.com을 통해 접속 대신 http://mydomain.com에 갈되지 않았기 때문에 그것은

+0

FB.so는 SO와 같습니다. 페이스 북을 추가/제거해보십시오. url의 처음부터. – bkaid

+0

내 질문을 어떻게 닫을 수 있는지 모르겠다. – johnny

답변

0

핵심 비트는 여기입니다 ... 사용자 세션이 비어 있으면 auth_url을로드하도록 브라우저에 지시하는 스크립트 요소.

0

브라우저가 "top.location.href"자바 스크립트 호출을 차단하지 않습니까? 추가 검사를 위해 $ auth_url을 echo/writeln 해보십시오. 우리가 "$ auth_url"을 보여줄 수 있다면 그것은 도움이 될 것입니다/

0

'$ auth_url'은 응용 프로그램에 권한을 부여하지 않은 경우에만 사용자를 리디렉션하는 데 사용됩니다 .

'$ signed_request'는 Facebook에서 보낸 암호화 된 데이터이고 '$ data'변수는 연관 배열로 해독 된 모든 데이터를 포함합니다.

'$ signed_request'에 대해 신경 쓰지 않아도됩니다. 필요한 정보가 들어있는 '$ data'변수에 실제로 필요한 것이 있습니다.