2011-01-25 1 views
0

페이스 북 등록 양식으로 사이트에 등록한 사용자가 입력 한 사용자 정의 필드에 액세스하는 방법을 궁금합니다.페이스 북 등록 양식에 기입 된 사용자 정의 필드의 값에 액세스하는 방법은 무엇입니까?

저는 PHP SDK 환경의 사용법을 조금 이해하고 성별, 이름 등을 쉽게 액세스 할 수 있지만 직접 작성한 사용자 정의 필드를 사용하여이를 수행하는 방법을 모릅니다.

PHP SDK와 관련된 답변을 받기를 원하지만 어떤 것이 좋을 수도 있습니다.

미리 감사드립니다. 등록 신청서가 제출되면

답변

0

하는 signed_request 당신이 URL에 다시 서버로 전송됩니다 필요한 데이터는 redirect_uri를 지정 ALL을 잡고, 어떻게 "추출물"이러한 데이터합니다 (documentation에서 설명하는 PHP Example reading signed_request 섹션) :

<?php 
define('FACEBOOK_APP_ID', 'your_app_id'); 
define('FACEBOOK_SECRET', 'your_app_secret'); 

function parse_signed_request($signed_request, $secret) { 
    list($encoded_sig, $payload) = explode('.', $signed_request, 2); 

    // decode the data 
    $sig = base64_url_decode($encoded_sig); 
    $data = json_decode(base64_url_decode($payload), true); 

    if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') { 
    error_log('Unknown algorithm. Expected HMAC-SHA256'); 
    return null; 
    } 

    // check sig 
    $expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true); 
    if ($sig !== $expected_sig) { 
    error_log('Bad Signed JSON signature!'); 
    return null; 
    } 

    return $data; 
} 

function base64_url_decode($input) { 
    return base64_decode(strtr($input, '-_', '+/')); 
} 

if ($_REQUEST) { 
    echo '<p>signed_request contents:</p>'; 
    $response = parse_signed_request($_REQUEST['signed_request'], 
            FACEBOOK_SECRET); 
    echo '<pre>'; 
    print_r($response); 
    echo '</pre>'; 
} else { 
    echo '$_REQUEST is empty'; 
} 
?>