Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.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
Facebook应用程序的登录对话框循环警报_Facebook - Fatal编程技术网

Facebook应用程序的登录对话框循环警报

Facebook应用程序的登录对话框循环警报,facebook,Facebook,我收到了一个关于我的Facebook应用程序的警报,上面说“在人们拒绝权限请求后,你的应用程序会反复将他们重定向到登录对话框。请更新你的应用程序,使其符合我们的平台政策,以提供出色的用户体验。” 谁能帮我修一下吗。这是密码 <?php if (!empty($_GET['i'])) { session_start(); $_SESSION['imguris'] = $_GET['i']; } require( '../../../../wp-load.php' );

我收到了一个关于我的Facebook应用程序的警报,上面说“在人们拒绝权限请求后,你的应用程序会反复将他们重定向到登录对话框。请更新你的应用程序,使其符合我们的平台政策,以提供出色的用户体验。”

谁能帮我修一下吗。这是密码

    <?php
if (!empty($_GET['i'])) {
  session_start();
  $_SESSION['imguris'] = $_GET['i']; 
}

require( '../../../../wp-load.php' );

$toptions = get_option('sample_theme_options');

if (!empty($toptions['fbappid']) && !empty($toptions['fbapisecret'])) {

    $fbconfig['appid' ]     = $toptions['fbappid'];
    $fbconfig['secret']     = $toptions['fbapisecret'];
    $fbconfig['baseurl']    = get_bloginfo('template_url')."/fb/index.php";
    //print_r($fbconfig);

    if (isset($_GET['request_ids'])){

    }

    $user            =   null; //facebook user uid
    try{
        include_once "facebook.php";
    }
    catch(Exception $o){
        error_log($o);
    }

    $facebook = new t_Facebook(array(
      'appId'  => $fbconfig['appid'],
      'secret' => $fbconfig['secret'],
      'cookie' => true,
    ));

    $user       = $facebook->getUser();    
    $loginUrl   = $facebook->getLoginUrl(array(
                'scope'         => 'publish_stream',
                'redirect_uri'  => $fbconfig['baseurl'])
    );

    function d($d){
        echo '<pre>';
        print_r($d);
        echo '</pre>';
    }

    if (!$user) { ?>
        <script type="text/javascript"> 
        window.top.location.href="<?php echo $loginUrl; ?>"; 
        </script>
    <?php } ?>

    <?php if ($user){
        if (isset($_SESSION['imguris'])) {
            $imguri = str_replace(get_option('home'), "", $_SESSION['imguris']);
            $imguri = '../../../../'.$imguri;               
            $facebook->setFileUploadSupport(true);
            $args = array('message' => $toptions['covtitle']);
            $args['image'] = '@' . realpath($imguri);
            try {
                    $data = $facebook->api('/'.$user.'/photos', 'post', $args);
                    //print_r($data);
            } catch (t_FacebookApiException $e) {
                    //d($e);
            }
            if (isset($data['id'])) {
                if (isset($toptions['instructionsurl'])) {
                    $redir = $toptions['instructionsurl'];
                } else {
                    $redir = get_option('home');
                }
                echo "<script type='text/javascript'> window.top.location.href='".$redir."'; </script>";
            }
        }
    } 

} else {
    if (isset($toptions['instructionsurl'])) {
        $redir = $toptions['instructionsurl'];
    } else {
        $redir = get_option('home');
    }
    echo "<script type='text/javascript'> window.top.location.href='".$redir."'; </script>";
}

window.top.location.href=“”;

问题不在于代码,而在于工作流程。FB用户体验策略规定,如果用户不断拒绝,应用程序不应重复向用户请求权限。但是,如果用户决定授予这些权限,它还应该为用户提供一种明确的方式。没有具体的解决方案来实现这种行为,但FB建议开发者将他们的基本和非基本权限请求分开,即只在登录时请求基本的读取权限,然后在应用程序尝试在FB上发布内容之前验证您是否具有必要的写入权限,如果没有,则向用户提供相应的权限请求

查看有关可能的开发人员警报和解决这些警报的建议行动方案的更多信息