0

我的 php 文件是:

<?php
session_start();

    if (!class_exists('FacebookApiException')) {
    require_once('facebook.php' );
    }
        $facebook = new Facebook(array(
        'appId' => $appId,
        'secret' => $appSecret,
    ));
    $fbuser = $facebook->getUser();
 if ($fbuser) {
        try {
         $user_interest = $facebook->api('/me/movies');
        echo '<pre>';
        //print_r($user_interest);
        }
 catch (FacebookApiException $e) {
    echo '<pre>'.htmlspecialchars(print_r($e, true)).'</pre>';
    $user = null;
  }}
?>

我想在 php 文件中的 html 代码中使用 $user_interest 和其他 var:我尝试了以下方式,导致错误 $user_interest 未定义。

<?php
session_start();
$appId = '619'; 
$appSecret = 'myverybeatuifuldaisygiveusmilk'; // Facebook App Secret
$return_url = 'http://yoursite.com/connect_script/';  //path to script folder
$fbPermissions = 'publish_stream,email'; //more permissions : https://developers.facebook.com/docs/authentication/permissions/
require_once('facebook.php' );
$facebook = new Facebook(array(
        'appId' => $appId,
        'secret' => $appSecret,
    ));
    $fbuser = $facebook->getUser();
     $user_interest = $facebook->api('/me/movies');
?>
<!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 = 'connect=1'; 
     $.ajax({
    type: "POST",
    url: "process_facebook.php",
    data: myData
    }).done(function(result) {
    $("#fb-root").html(result);
    });
   }


 </script></head><body>

<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});};
document.write($user_interest);
(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(){
        FB.login(function(response) {
        if (response.status === "connected")
        {
            LodingAnimate(); //Animate login
            FB.api('/me', function(data) {
            console.log($user_interest);

              }); 
         }     });  }
</script>
</body>
</html>
4

2 回答 2

2

换行试试

console.log($user_interest);

到:

console.log('<?php echo $user_interest; ?>');
于 2013-07-29T11:35:47.497 回答
2

您在 php 上下文之外使用变量 $user_interest。它应该像这样放在 php-Tags 中:

<?php echo $user_interest; ?>
于 2013-07-29T11:36:10.300 回答