2010-06-08 5 views
1

나는 phl과 FBML로 페이스 북의 캔버스 애플리케이션을 개발하고 있으며, 애플리케이션에 대한 권한 설정과 관련하여 문제가있다. 나는 기본적으로 그것에 대해 어떻게하는지, 또는 최선의 방법이 무엇인지에 관해 모른다.페이스 북의 캔버스 애플리케이션 - php 인증 문제

저는 인터넷에서 대부분의 시간을 검색했지만 오래된 API에 관한 기사를 찾지 못하거나 설명하는 내용을 구현하는 방법을 모릅니다.

$facebook = new Facebook(array(
    'appId' => '*snip*', 
    'secret' => '*snip*', 
    'cookie' => true,)); 

$session = $facebook->getSession(); 

$fbme = null; 
if ($session) { 
    try { 
    $uid = $facebook->getUser(); 
    $fbme = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
     d($e); 
    } 
} 

if (!$fbme) { 
    $loginUrl = $facebook->getLoginUrl(array(
       'canvas' => 1, 
       'fbconnect' => 0, 
     'req_perms' => "publish_stream,user_birthday,friends_birthday,user_events,user_hometown,friends_hometown,user_location,friends_location,offline_access," 
      ));; 
} 

if (isset($loginUrl)) { 
    echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>"; 
    exit; 
} 

을하지만 그건 아무것도하지 않으며, 내가 헤더를 변경하는 대신 스크립트 블록을 사용하여 시도하는 경우, 내가 얻을 : 여기

내가 무엇을 가지고

의 URL을 ... 유효하지 않음

나는이 모든 것을 잘못 알고 있습니까?

미리 도움을 청하십시오.

앤디

+0

전체 오류 메시지를 입력하십시오. 오류가있는 곳을/you가 쉽게 볼 수있게 해주는 선 (예 : 28)이 있습니까? –

답변

1

일반적인 포함 내는 인증에 대해 다음과 같습니다 기본적으로하여 어느 응용 프로그램을 추가하거나 떠날 사용하라는 메시지가 표시

$facebook = new Facebook(array(
    'appId' => $ini['appid'], 
    'secret' => $ini['appsecret'], 
    'cookie' => true, 
)); 

$session = $facebook->getSession(); 
$fbme = null; 
if ($session) { 
    try { 
     $fbme = $facebook->api('/me'); 
    } 
    catch (FacebookApiException $e) { 
     error_log($e); 
    } 
} 

// new login check 
if (!$fbme) { 
    $loginUrl = $facebook->getLoginUrl(array(
     'canvas' => 1, 
     'fbconnect' => 0, 
     'req_perms' => 'email', 
     'next' => FB_APP_URL, 
     'cancel_url' => FB_APP_URL, 
    )); 
    echo '<fb:redirect url="' . $loginUrl . '" />'; 
} 

을; 이미 인증을받은 경우 if (!$fbme) 블록으로 진행됩니다.

+0

헤이 마틴, $ fbme = $ facebook-> api ('/ me')에서 예외가 발생합니다. 나는 최신 php-sdk를 사용하고있다. – RubyDubee

+0

예외는 무엇입니까? –