duandi8852752 2015-08-17 23:07
浏览 19

Facebook Api,PHP SDK,仅针对审核小组的错误

i'm trying to get my first app approved, i've got about 10 testers and app's works fine for me and for them. The problem is that when i submit it for approval, reviewer says that he cant log in, and attached i got a blank page showed after login. here's a simplified version of index.php

<?php
session_start(); 
set_time_limit(0); 
date_default_timezone_set('Europe/Rome'); 


require_once( 'libraries/Facebook/FacebookSession.php' );
require_once( 'libraries/Facebook/FacebookRedirectLoginHelper.php' );
require_once( 'libraries/Facebook/FacebookRequest.php' );
require_once( 'libraries/Facebook/FacebookResponse.php' );
require_once( 'libraries/Facebook/FacebookSDKException.php' );
require_once( 'libraries/Facebook/FacebookRequestException.php' );
require_once( 'libraries/Facebook/FacebookOtherException.php' );
require_once( 'libraries/Facebook/FacebookPermissionException.php' );
require_once( 'libraries/Facebook/FacebookAuthorizationException.php' );
require_once( 'libraries/Facebook/GraphObject.php' );
require_once( 'libraries/Facebook/GraphUser.php' );
require_once( 'libraries/Facebook/GraphSessionInfo.php' );
require_once( 'libraries/Facebook/FacebookServerException.php' );


use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookRequestException;
use Facebook\FacebookAuthorizationException;
use Facebook\GraphObject;
use Facebook\GraphUser;
use Facebook\GraphSessionInfo;



$id = 'app_id'; 
$secret = 'xxxxxxxxxxxxxxxxxxxxxxxxxx';
$permissions = array(   
'user_videos',
'user_posts',
'public_profile'
);



FacebookSession::setDefaultApplication($id, $secret);
$helper = new FacebookRedirectLoginHelper('http://app_url.com');
try{
    $session = $helper->getSessionFromRedirect();
}catch(Exception $e){

}
if(isset($_SESSION['token'])){
    $session = new FacebookSession($_SESSION['token']);

    try{

        $session->Validate($id, $secret);
    }catch(FacebookAuthorizationException $e){
        $session = '';

    }
}



if(isset($session)){

        /* do something*/

}

else{ 
    $loginUrl = $helper->getLoginUrl( $permissions );
    $_SESSION['login'] = $loginUrl;
    include 'php/login.php';

}

In the error.log i got this error:

[17-Aug-2015 20:09:30 Europe/Rome] PHP Fatal error:  Uncaught exception 'Facebook\FacebookSDKException' with message 'Session has expired, or is not valid for this app.' in /home/user/public_html/my_app/libraries/Facebook/FacebookSession.php:196
Stack trace:
#0 /home/nicosh/public_html/my_app/libraries/Facebook/FacebookSession.php(174): Facebook\FacebookSession::validateSessionInfo(Object(Facebook\GraphSessionInfo), 'xxxxxxxxxxxxxxxx...', 'xxxxxxxxxxxxxxxxx...')
#1 /home/nicosh/public_html/my_app/index.php(58): Facebook\FacebookSession->validate('xxxxxxxxxxxxxxxx...', 'xxxxxxxxxxxxxxxxxx...')
#2 {main}
  thrown in /home/user/public_html/my_app/libraries/Facebook/FacebookSession.php on line 196

Now, the differences between me/my testers, and fb reviewer are 1-different locations, we are from Italy, and i set date_default_timezone_set('Europe/Rome'); can this cause the error? everytime i got the notification from reviewer team about 01 pm, so it's a different day from USA, can this affect the token creation? 2-me/testers have a role in app's roles. Any idea or Suggestion? Thank Nico.

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
    • ¥20 怎么用dlib库的算法识别小麦病虫害
    • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
    • ¥15 java写代码遇到问题,求帮助
    • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
    • ¥15 有了解d3和topogram.js库的吗?有偿请教
    • ¥100 任意维数的K均值聚类
    • ¥15 stamps做sbas-insar,时序沉降图怎么画
    • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
    • ¥15 关于#Java#的问题,如何解决?