Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 删除多页重新加载问题_Php_Javascript_Facebook_Facebook Javascript Sdk - Fatal编程技术网

Php 删除多页重新加载问题

Php 删除多页重新加载问题,php,javascript,facebook,facebook-javascript-sdk,Php,Javascript,Facebook,Facebook Javascript Sdk,我正在尝试获取用户最喜欢的电影和其他细节以及FB JS SDK。下面的内容对我来说是正确的。我曾尝试使用ajax删除页面重新加载。但我不明白为什么页面在登录按钮出现之前会被重新加载两次。在用户输入登录凭证并单击“登录”按钮之后,在数据出现之前,页面将重新加载两次。 我要删除此多页重新加载。有人能检查一下代码,让它更简单吗 Login.php: <?php session_start(); $appId = '66'; $appSecret = 'sdsds3'; // Facebook

我正在尝试获取用户最喜欢的电影和其他细节以及FB JS SDK。下面的内容对我来说是正确的。我曾尝试使用ajax删除页面重新加载。但我不明白为什么页面在登录按钮出现之前会被重新加载两次。在用户输入登录凭证并单击“登录”按钮之后,在数据出现之前,页面将重新加载两次。 我要删除此多页重新加载。有人能检查一下代码,让它更简单吗

Login.php:

<?php
session_start();
$appId = '66'; 
$appSecret = 'sdsds3'; // 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/

?>
<!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);
    });
   }

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 id="LoginButton">
    <div class="fb-login-button" onlogin="javascript:CallAfterLogin();" size="medium" scope="<?php echo $fbPermissions; ?>">Connect With Facebook</div>
    </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(){
        FB.login(function(response) {
        if (response.status === "connected")
        {
            LodingAnimate(); //Animate login
            FB.api('/me', function(data) {
//            $("#fb-root").append(data.);
            console.log(data);
              if(data.email == null)
              {
                    //Facbeook user email is empty, you can check something like this.
                  alert("You must allow us to access your email id!");
                    ResetAnimate();

              }else{
                    AjaxResponse();
              } }); 
         }     });  }
</script>
</body>
</html>

JS/ajaxfacebook-Connect
函数AjaxResponse()
{
var myData='connect=1';
$.ajax({
类型:“POST”,
url:“process_facebook.php”,
数据:myData
}).完成(功能(结果){
$(“#fb root”).html(结果);
});
}
函数LodingAnimate()//显示正在加载的图像
{
$(“#登录按钮”).hide();//用户授权应用程序后隐藏登录按钮
}
与带有“onlogin”和“scope”属性的“fb login button”不同,只需制作一个简单的按钮/link/which,并在“onclick”事件中调用“CallAfterLogin”。您没有正确使用FB.login,例如,这就是您必须放入范围的地方

请看这里:


顺便说一句,我不会调用函数“CallAfterLogin”,因为它不是在登录后调用的,而是登录代码。你根本不需要这个过程,你只需要使用JavaScript SDK就可以了,不用jQuery/Ajax。

谢谢你,伙计,你能告诉我如何打印
console.log(数据)浏览器上的数据在控制台中写入的位置?我想在浏览器上打印
/me/movies
,而无需移动到facebook!您可以只更改这一行:FB.api('/me',function(data)-切换到/me/movies,下一行中的console.log条目应提供我已经尝试过的内容,但它给出了错误
您必须允许访问您的电子邮件
,可能是从
/me
访问电子邮件。当然,电子邮件不在/me/movies连接中,您必须在登录sc中使用电子邮件权限通过/me连接获取电子邮件。学习javascript。这是您将得到的最佳答案;)-我们不是来提供完整的解决方案的,我们是来指导您(自己)开发一些东西的。否则你可以雇个人;)
<?php
session_start();
$appId = '66549'; //Facebook App ID
$appSecret = '3944'; // 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/

if(isset($_POST["connect"]) && $_POST["connect"]==1)
{
    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');
        //print user facebook data
        echo '<pre>';
        //print_r($user_interest);
        foreach ($user_interest['data'] as $var)
    {
         $ID=$var['id'];
         $Name=$var['name'];
         echo '<br/>';
         print_r($Name); echo '<br/>';
         print_r($ID);

    }
        echo '</pre>';
}
 catch (FacebookApiException $e) {
    echo '<pre>'.htmlspecialchars(print_r($e, true)).'</pre>';
    $user = null;
  }}}
?>