我只是尝试更新到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肯定存在问题,但我不知道它是什么
答案 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;权限。
但我在这里纠正了语法。