Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.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 PHP SDK登录路径_Php_Facebook - Fatal编程技术网

正确的Facebook PHP SDK登录路径

正确的Facebook PHP SDK登录路径,php,facebook,Php,Facebook,我正在尝试设置一个带有Facebook按钮的基本登录 这基本上就是我要复制的内容: 唯一的区别是我试图在一个文件中设置所有内容(这样我就可以将所有社交登录代码保存在一个位置),我希望在一个文件中创建链接并重定向用户 当我点击处理程序生成的页面时,会收到一条“对不起,此页面不可用”的消息 推特流基本上是一样的(它是完整的,没有问题)。我确实将oauth令牌保存到了一个数据库中,但我还没有开始使用Facebook部分。它将保存save表,我只保存oauth提供程序或与令牌一起保存的东西 要点如下:

我正在尝试设置一个带有Facebook按钮的基本登录

这基本上就是我要复制的内容:

唯一的区别是我试图在一个文件中设置所有内容(这样我就可以将所有社交登录代码保存在一个位置),我希望在一个文件中创建链接并重定向用户

当我点击处理程序生成的页面时,会收到一条“对不起,此页面不可用”的消息

推特流基本上是一样的(它是完整的,没有问题)。我确实将oauth令牌保存到了一个数据库中,但我还没有开始使用Facebook部分。它将保存save表,我只保存oauth提供程序或与令牌一起保存的东西

要点如下:

switch(strtolower($_REQUEST['method'])) {    
case 'twitter':
    /*ommited, but it's basically the same flow*/
    break;

case 'facebook':
    // if we don't have a step, we don't know what to do
    if (!isset($_REQUEST['step'])) {
        die('Fail: invalid step: (none)');
    }

    // we'll be using the Facebook PHP SDK
    require(FACEBOOK_SDK_PATH);

    switch(strtolower($_REQUEST['step'])) {
        case 1:
            // instantiates a new SDK App object
            $fb = new Facebook\Facebook([
                'app_id' => FACEBOOK_APP_ID,
                'app_secret' => FACEBOOK_APP_SECRET,
                'default_graph_version' => '2.0'
            ]);

            // gets helper
            $helper = $fb->getRedirectLoginHelper();

            // optional permissions parameter
            // we want the users email address
            $permissions = ['email'];

            // generates the url for the user to authorize access
            $loginUrl = $helper->getLoginUrl('http://localhost/social-login.php?method=facebook&step=2', $permissions);

            // redirect user
            header('Location: ' . $loginUrl);

            break;

        case 2:
            // this should include an access token so we can get information about the user and consider them authenticated
            echo '<pre>';
            var_dump($_SESSION);
            var_dump($_REQUEST);
            echo '</pre>';
            die();

            break;

        default:
            die('Fail: invalid step: ' . $_REQUEST['step']);
    }
    break;

default:
    die('Fail: invalid method . ' . $_REQUEST['method']);
}
开关(strtolower($_请求['method']){
“推特”案例:
/*Omited,但基本上是相同的流程*/
打破
“facebook”案例:
//如果我们没有一步,我们就不知道该怎么办
如果(!isset($_请求['step'])){
模具('失败:无效步骤:(无)';
}
//我们将使用Facebook PHP SDK
需要(FACEBOOK_SDK_路径);
开关(strtolower($_请求['step'])){
案例1:
//实例化一个新的SDK应用程序对象
$fb=新Facebook\Facebook([
“应用程序id”=>FACEBOOK应用程序id,
'app_secret'=>FACEBOOK_app_secret,
“默认图形版本”=>“2.0”
]);
//获取帮助程序
$helper=$fb->getRedirectLoginHelper();
//可选权限参数
//我们需要用户的电子邮件地址
$permissions=['email'];
//生成用户授权访问的url
$loginUrl=$helper->getLoginUrl('http://localhost/social-login.php?method=facebook&step=2“,$permissions);
//重定向用户
标题('位置:'。$loginUrl);
打破
案例2:
//这应该包括一个访问令牌,这样我们就可以得到关于用户的信息,并考虑他们的身份验证。
回声';
$fb = new Facebook\Facebook([
    'app_id' => FACEBOOK_APP_ID,
    'app_secret' => FACEBOOK_APP_SECRET,
    'default_graph_version' => '2.0'
]);
变量转储($\会话); 变量转储($\请求); 回声';
$fb = new Facebook\Facebook([
    'app_id' => FACEBOOK_APP_ID,
    'app_secret' => FACEBOOK_APP_SECRET,
    'default_graph_version' => '2.0'
]);
模具(); 打破 违约: die('Fail:无效步骤:'.$\u请求['step']); } 打破 违约: die('Fail:无效方法。$\u请求['method']); }
我已经把上面的文档翻了一遍,就是想不出遗漏了什么。这可能是应用程序端的设置吗?localhost回调有问题吗

我将默认的图形版本与应用程序设置为(2.0)的任何版本相匹配。我不确定我是否能改变这一点,但我看到很多代码使用2.2和2.5,我也不知道这是否是我的问题的一部分。我想不会,但我想我应该在这里写个条子

    'default_graph_version' => 'v2.0'
您指定的API版本错误,因此SDK创建了错误的登录对话框URL

您需要包括
v

您指定的API版本错误,因此SDK创建了错误的登录对话框URL

您需要包括
v


我收到一条“抱歉,此页面不可用”消息-从哪里来?是应用程序明确输出的消息吗?或者您只是指浏览器的默认错误页?检查浏览器的“开发工具网络”面板中发生的情况–您是否看到500或其他服务器端错误?检查服务器的日志文件。@CBroe这是我重定向到SDK生成的URL时收到的消息。我收到一条“抱歉,此页面不可用”消息-从哪里来?是应用程序明确输出的消息吗?或者您只是指浏览器的默认错误页?检查浏览器的“开发工具网络”面板中发生的情况–您是否看到500或其他服务器端错误?检查服务器的日志文件。@CBroe这是我重定向到SDK生成的URL时收到的消息。