0

Facebookアプリ初心者です。fbログインボタンをクリックするまでは、すべて問題ありません。通常、許可を求めてから、actions.php にリダイレクトします。これで、Facebook キャンバス外の SSL URL にリダイレクトされます。だから私が今見ているのは、もうFacebookページにないプレーンなウェブページです。

ここに私のインデックス コードと私のホームページを表示する私の action.php があります:

index.php

    <?php
    error_reporting(0);
    include 'library.php';
    ?>
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>HELP</title>
    <script type="text/javascript">
    window.fbAsyncInit = function() {
        FB.init({
        appId      : '*************', // replace your app id here
        channelUrl : '//<domain_name>/bacardi-test/channel.html',
        status     : true,
        cookie     : true,
        xfbml      : true
        });
    };
    (function(d){
        var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
        if (d.getElementById(id)) {return;}
        js = d.createElement('script'); js.id = id; js.async = true;
        js.src = "//connect.facebook.net/en_US/all.js";
        ref.parentNode.insertBefore(js, ref);
    }(document));


        function FBLogin(){
        FB.login(function(response){
            if(response.authResponse){
                window.top.location = "actions.php?action=fblogin";
            }
        }, {scope: 'email,user_likes,user_birthday'});
    }

    </script>
    </head>
    <body>
    <div id="fb-root"></div>
    <img src="assets/img/bacardi/facebook-connect.png" alt="Fb Connect" title="Login with facebook" onclick="FBLogin();"/>
    </body>
    </html>

actions.php

<?php
include 'library.php';

$action = $_REQUEST["action"];
switch($action){
    case "fblogin":
    include 'src/facebook.php';
    $appid  = "**************";
    $appsecret  = "************";
    $facebook   = new Facebook(array(
        'appId' => $appid,
        'secret' => $appsecret,
        'cookie' => TRUE,
    ));

    $fbuser = $facebook->getUser();

    if ($fbuser) {
        try {
            $user_profile = $facebook->api('/me');
        }
        catch (Exception $e) {
            echo $e->getMessage();
            exit();
        }
        # Account ID
        $user_fbid  = $fbuser;

        # Account Bday
        $user_bday = $user_profile['user_birthday'];

        # Account Email
        $user_email = $user_profile['email'];

        # Account firstname
        $user_fname = $user_profile['first_name'];

        # Account lastname
        $user_lname = $user_profile['last_name'];

        # Accounr image url
        $user_image = "https://graph.facebook.com/".$user_fbid."/picture?type=large";

        $check_select = mysql_num_rows(mysql_query("SELECT * FROM `users` WHERE email = '$user_email'"));
        if($check_select == 0){
            mysql_query("INSERT INTO `users` (fb_id, fname,lname, email, image, birthday,postdate)
            VALUES ('$user_fbid', '$user_fname', '$user_lname', '$user_email', '$user_image', '$user_bday',now())");
        }
    }   
    break;
    }

?>
4

1 に答える 1

0

window.top.location が facebook の iframe を壊したようです。どういうわけか変更するボタンではなく、許可の自動プロンプトに取り組んでいました。今ではすでに機能しています。window.top.location を window.location.href に変更しました。みんなが私の問題を読んでくれてありがとう。

于 2013-08-26T06:42:39.110 に答える