Facebook获得了额外的权限

时间:2014-12-19 22:23:55

标签: php facebook facebook-php-sdk facebook-login

我只是尝试更新到PHP SDK 4.0。我找不到自己的错误,希望你能帮助我。我将所有文件复制到文件夹“./facebook4”并执行以下代码:

// Skip these two lines if you're using Composer
define('FACEBOOK_SDK_V4_SRC_DIR', '/./facebook4/src/Facebook/');

// if you include this file you don't need to use composer
require __DIR__ . '/./facebook4/autoload.php';

// include required files form Facebook SDK
require_once( './facebook4/HttpClients/FacebookHttpable.php' );
require_once( './facebook4/HttpClients/FacebookCurl.php' );
require_once( './facebook4/HttpClients/FacebookCurlHttpClient.php' );
require_once( './facebook4/Entities/AccessToken.php' );
require_once( './facebook4/Entities/SignedRequest.php' );
require_once( './facebook4/FacebookSession.php' );
require_once( './facebook4/FacebookRedirectLoginHelper.php' );
require_once( './facebook4/FacebookRequest.php' );
require_once( './facebook4/FacebookResponse.php' );
require_once( './facebook4/FacebookSDKException.php' );
require_once( './facebook4/FacebookRequestException.php' );
require_once( './facebook4/FacebookOtherException.php' );
require_once( './facebook4/FacebookAuthorizationException.php' );
require_once( './facebook4/GraphObject.php' );
require_once( './facebook4/GraphSessionInfo.php' );

use Facebook\HttpClients\FacebookHttpable;
use Facebook\HttpClients\FacebookCurl;
use Facebook\HttpClients\FacebookCurlHttpClient;
use Facebook\Entities\AccessToken;
use Facebook\Entities\SignedRequest;
use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookRequestException;
use Facebook\FacebookOtherException;
use Facebook\FacebookAuthorizationException;
use Facebook\GraphObject;
use Facebook\GraphSessionInfo;

    FacebookSession::setDefaultApplication('AppID','secretAppID');

$redirect_url = "http://www.mypage.de/Logged.php";

// use the helper 
$facebook = new FacebookRedirectLoginHelper($redirect_url);
// get a loginurl


$permissions = array(
'email',        
'read_stream',
'user_actions:criminalcase'
); 

echo "Test1";
$loginUrl = $facebook->getLoginUrl($permissions);
echo "Test2";

echo "<a href='".$loginUrl."'>Link here</a>";

当我调用页面时显示Test1但是没有显示Test2和“此处链接”。所以我想getLoginUrl肯定存在问题,但我不知道它是什么

2 个答案:

答案 0 :(得分:0)

https://developers.facebook.com/docs/reference/php/facebook-getLoginUrl/

仔细看看数组:

$params = array(
  'scope' => 'read_stream, friends_likes',
  'redirect_uri' => 'https://www.myapp.com/post_login_page'
);

所以在你的情况下,它应该是这样的:

$permissions = array(
    'scope' => 'email, read_stream, user_actions:criminalcase'
);

不确定要使用“user_actions:criminalcase”实现什么,没有此类权限。此外,在使用自动加载器时,您不需要所有这些必需语句。

重要提示:您很可能无法获得read_stream批准,因此它只适用于在您的应用中具有角色的用户(管理员/开发人员/测试人员):

  

此权限授予在Facebook尚不可用的平台上构建Facebook品牌客户端的应用程序。例如,Android和iOS应用不会获得此权限的批准。此外,Web,桌面和电视应用程序不会被授予此权限。

来源:https://developers.facebook.com/docs/facebook-login/permissions/v2.2#reference-read_stream

答案 1 :(得分:0)

您的语法仍然存在问题。

试试这个

$permissions = array('email', 'read_stream', 'user_actions:criminalcase');

我不确定你的&#34; user_actions:criminalcase&#34;权限。

但我在这里纠正了语法。