我正在使用 facebook API 获取用户电影,如下所示:
function CallAfterLogin(data,callback){
FB.login(function(response) { //---
if (response.status === "connected")
{
LodingAnimate();
FB.api('/me?fields=movies,email', function(mydata) {
console.log(mydata);
if(mydata.email == null)
{
alert("You must allow us to access your email id!");
ResetAnimate();
}else {
callback(data); // <=== Trigger the callback
} ....
并使用 ajax 将其发送为:
function AjaxResponse()
{
var mydata;
CallAfterLogin(mydata, function(send) {
var myData = 'connect=1';
$.ajax({
type: "POST",
url: "process_facebook2.php",
data: {
connect: 1,
myd: mydata //
}
}).done(function(result) {
$("#fb-root").html(result);
.....
获得的数据是数组形式。我试图以myd
这种方式获取:
$s=$_POST['myd'];
echo $s['id']`;
或者 echo $s
这给出了错误Undefined index
。
以前我可以通过这种方式得到它:
$user_interest = $facebook->api('/me/movies');echo '<pre>';
foreach ($user_interest['data'] as $var)
{
$ID=$var['id'];
$Name=$var['name'];
echo '<br/>';
print_r($Name); echo '<br/>';
print_r($ID);
}
但由于一些问题,现在我在初始代码中使用 ajax 发送。
有些人请帮助我得到它。
完整代码:
<?php
session_start();
$appId = '669340023079549';
$appSecret = '390c04c60d19f38e113ea44f268aca44'; // Facebook App Secret
$return_url = 'dev01.dev/FB/facebook-php-sdk/examples/'; //path to script folder
//$fbPermissions = 'publish_stream,email'; //more permissions : https://developers.facebook.com/docs/authentication/permissions/
?>
<!DOCTYPE html>
<html xmlns:fb="http://www.facebook.com/2008/fbml" xml:lang="en-gb" lang="en-gb" ><head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<title>JS/Ajax Facebook Connect</title>
<script>
function AjaxResponse()
{
var mydata;
CallAfterLogin(mydata, function(send) {
alert(mydata);
var myData = 'connect=1';
$.ajax({
type: "POST",
url: "process_facebook2.php",
data: mydata
}).done(function(result) {
$("#fb-root").html(result);
});
});
}
function LodingAnimate() //Show loading Image
{
$("#LoginButton").hide(); //hide login button once user authorize the application
}
</script></head><body>
<?php
if(!isset($_SESSION['logged_in']))
{
?>
<div id="results"> </div>
<div class="results1"> </div>
<div id="LoginButton">
<button type="button" onclick="AjaxResponse()" src="fb.png" stype="height:100 width:100"></button>
</div>
<?php
}
?>
<div id="fb-root"></div>
<script type="text/javascript">
window.fbAsyncInit = function() {
FB.init({
appId: '<?php echo $appId; ?>',
cookie: true,
xfbml: true,
channelUrl: '<?php echo $return_url; ?>channel.php',
oauth: true});};
(function() {
var e = document.createElement('script');
e.async = true;
e.src = document.location.protocol +'//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);}());
function CallAfterLogin(data,callback){
FB.login(function(response) { //---
if (response.status === "connected")
{
LodingAnimate();
FB.api('/me?fields=movies,email', function(mydata) {
console.log(mydata);
if(mydata.email == null)
{
alert("You must allow us to access your email id!");
ResetAnimate();
}
else
{
var json = JSON.stringify(mydata.movies.data);
var a = JSON.parse(json);
$.post('process_facebook2.php',{'myd':a}, function(data)
{
// alert(data);
});
}
}); //--
} //if
}); //---
} //main function
</script>
</body>
</html>
process_facebook.php:
<?php
echo "hi";
foreach($_POST['myd'] as $elem){
echo $elem['name'];
echo $elem['id'];
echo '<br/>';
}
?>