2012-06-05 2 views
0
require_once 'library/facebook/facebook.php'; 

$facebook = new Facebook(array(
'appId' => 'appid', 
'secret' => 'secret', 
)); 

$signed_request = $_REQUEST["signed_request"]; 
list($encoded_sig, $payload) = explode('.', $signed_request, 2); 
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true); 

위의 코드 뒤에 UID를 얻는 방법.페이스 북의 서명 요청은 UID를 얻습니다. PHP

답변

1

페이스 북 API를 포함 할 필요가 없습니다. 이것에 다만

$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true); 
echo $data["user_id"]; 

이것은 $data의 다른 정보의 완전한리스트이다.

{ 
    "algorithm": "HMAC-SHA256", 
    "expires": 1317243600, 
    "issued_at": 1317239909, 
    "oauth_token": "<token>", 
    "page": { 
    "id": "<id>", 
    "liked": false, 
    "admin": true 
    }, 
    "user": { 
    "country": "in", 
    "locale": "en_GB", 
    "age": { 
     "min": 21 
    } 
    }, 
    "user_id": "<user-id>" 
} 
+0

응용 프로그램이 어떤 권한, 또는 얻을 수있는 다른 방법이 부여되지 않은 경우 덕분에, 빠른 질문, PHP 페이지로 사용할 수 USER_ID한다 권한을 요청하지 않고 user_id? –

+0

아니요 (기억하고 있듯이) – Jashwant

+0

답으로 표시 : – Jashwant

0

당신이 PHP SDK를 사용하고 있기 때문에,

당신은 단순히

$user = $facebook->getUser(); 

PHP SDK를이 signed_request에서 UID를 읽 말할 수있다.

또는

당신의 서명 요청에서 직접 걸릴 수

$signed_request = $facebook->getSignedRequest(); 
$user = isset($signed_request['user_id']) ? $signed_request['user_id'] : ''; 
+0

감사합니다. 먼저이 권한을 요청하지 않고이 user_id를 사용할 수 있습니까? –

+0

사용자가 앱을 승인하지 않으면 user_id가 표시되지 않습니다. – Venu

+0

감사합니다. 귀하의 답변도 정확합니다. –

관련 문제