2010-06-29 6 views
0

사용자 facebook-id를 추출하여 PHP 변수에 넣고 싶습니다.페이스 북에서 uid를 추출하십시오.

내가 사용하는 코드는 페이스 북 튜토리얼 비디오와 그 작업에서 가져온 것입니다. 난 그냥 PHP 코드에서 사용자 ID를 사용할 수 있기를 원합니다.

내 코드입니다 :

<form action="" method="post"> 
<div id="user"> 
Name: <input name="name" size="27" /><br /> 
    <fb:login-button length="long" onlogin="update_user_box();"></fb:login-button> 

</div> 
<textarea name="comment" cols="30" rows="5"></textarea><br /> 
<input type="submit" value="Submit comment" /> 
</form> 


<script type="text/javascript" src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php"></script> 

<script type="text/javascript"> 

function update_user_box() { 
var user_box = document.getElementById("user"); 
user_box.innerHTML = 
"<span>" 
+"<fb:profile-pic uid='loggedinuser'></fb:profile-pic>" 
+"Welcome, <fb:name uid='loggedinuser' useyou='false'></fb:name>. " 
+"You are signed in with your Facebook account." 
+"<fb:uid uid='loggedinuser'></fb:uid>" 
+"<a href='#' onclick='FB.Connect.logout(function() { reload(); }); return false;' ><img id='fb_logout_image' src='http://static.ak.fbcdn.net/images/fbconnect/logout-buttons/logout_small.gif' border='0' alt='Connect'/></a>" 
+"</span>"; 

FB.XFBML.Host.parseDomTree(); 
} 

FB.init("API-KEY","xd_receiver.htm"); 

FB.ensureInit (function() { 
     FB.Connect.ifUserConnected(update_user_box); 
}); 
</script> 
+1

을 시도합니다. 그들은 다른 언어입니다. –

답변

0

당신은 자바 스크립트에서 PHP로 변수를 전달할 수 없습니다; JavaScript는 클라이언트 측 언어입니다 (즉 브라우저에 의해 실행됩니다). PHP는 서버 측 언어입니다 (즉, 서버에서 실행 됨).

XMLHttpRequest (일반적으로 AJAX라고 함)를 사용하여 JavaScript에서 PHP로 데이터를 전달하여 PHP 요청에 HTTP 요청을 보낼 수는 있지만, 원하는대로 할 수는 없습니다.

0

일단 사용자가 로그인하면 (대개 javascript FB.login()을 사용하여) 쿠키가 설정됩니다. PHP는 해당 쿠키에 액세스 할 수 있습니다. ('UID')

<?php 

define('FACEBOOK_APP_ID', 'your application id'); 
define('FACEBOOK_SECRET', 'your application secret'); 

function get_facebook_cookie($app_id, $application_secret) { 
    $args = array(); 
    parse_str(trim($_COOKIE['fbs_' . $app_id], '\\"'), $args); 
    ksort($args); 
    $payload = ''; 
    foreach ($args as $key => $value) { 
    if ($key != 'sig') { 
     $payload .= $key . '=' . $value; 
    } 
    } 
    if (md5($payload . $application_secret) != $args['sig']) { 
    return null; 
    } 
    return $args; 
} 

$cookie = get_facebook_cookie(FACEBOOK_APP_ID, FACEBOOK_SECRET); 

?> 

그런 다음 $ 쿠키를 얻을 수 있고, 당신이 그것을 필요로하는 곳에 것을 사용합니다 (http://developers.facebook.com/docs/guides/web#login에서) 다음과 같은 PHP 코드를 확인하십시오.

위의 링크 된 페이지에는 PHP와 함께 JavaScript SDK를 사용하는 방법에 대해 알아야 할 모든 정보가 들어 있습니다.

0

당신은 PHP에 대한 페이스 북의 클라이언트 라이브러리를 포함해야하고 당신은 쉽게이 같은 사용자 ID를 얻을 수 있습니다 :

include ('facebook_client_library.php'); 
$facebook = new facebook('API', 'SECRET'); 
$fbid = $facebook->get_loggedin_user(); 
echo $fbid; 

을 또는이 자바 스크립트 (확실하지 않은) 시도 :

alert(FB.Facebook.apiClient.get_session().uid); 
0

사용 배열은, 그것을 가지고 그때 사용되는 코드는 단지 추가 내 질문에 Facebook Registration Connect 확인

$fuid = $response["registration"]["user_id"]; 

또는 그래도 문제가 해결되지 않으면 다음이, 자바 자바 스크립트없는 내가 도움이있었습니다

$fuid = $response["user_id"]; 

희망, 브래드

관련 문제