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
重写URL崩溃facebook sdk for php_Php_Facebook_Mod Rewrite - Fatal编程技术网

重写URL崩溃facebook sdk for php

重写URL崩溃facebook sdk for php,php,facebook,mod-rewrite,Php,Facebook,Mod Rewrite,我有这种情况。 在MVC web应用程序上,我们正在重写url: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 因此,url可能是: http://mysite.com/ControllerName/M

我有这种情况。 在MVC web应用程序上,我们正在重写url:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
因此,url可能是:

http://mysite.com/ControllerName/MethodName/Param1/Param2.......
现在我们需要在应用程序上实现facebook登录。 我们只需从git上的sdk页面复制并粘贴代码

require 'facebook-php-sdk/src/facebook.php';

$facebook = new Facebook(array(
  'appId'  => 'YOUR_APP_ID',
  'secret' => 'YOUR_APP_SECRET',
));

// Get User ID
$user = $facebook->getUser();
if ($user) {
  try {
    // Proceed knowing you have a logged in user who's authenticated.
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}
if ($user) {
  $logoutUrl = $facebook->getLogoutUrl();
} else {
  $loginUrl = $facebook->getLoginUrl();
}
如果这样做,
$user
始终为0,因为facebook会返回到用户信息所在的“重定向uri”

Facebook重定向到的实际URL如下所示:

http://localhost/tesis/?state=6713ce83f25b296abd372ccad20a244d&code=AQA6xxwPiiQt06luKaDD84dFxIXPuhO41RlCQcnV5K2ZtVjyKvZ3A7uqqOQlEX4To_CoT8nEmUjzS2YOVsdhU5CE3I_jfK2LsmkpLsty91-EeipIIvFQLqe6VFB_OHYcj_J0-jdhXfAdYFQ2jsA6Hejnw8bF1ezWtEaZCNnqgc_mQWhovkV8XmFzLFGsqjr52bq2b0wR8Au3ZOSvJUnperaT#_=_
所以我想我需要对htaccess做一些修改。 但是我不知道我需要做什么改变,我也有同样的问题。 我只是重定向到登录url中的主页,如下所示:

$params = array('scope' => 'email','redirect_uri' => 'http://www.page.com/index.php');
$loginUrl = $facebook->getLoginUrl($params);

可能您可以重定向到“成功登录”页面(不支持URL),并包含一个返回历史记录的链接。

Facebook重定向到的实际URL是什么样子的,以及重写后的内部URL是什么样子的?在服务器端身份验证流程之后,SDK将查找
状态
代码
参数–因此这些参数必须作为查询字符串中的GET参数传递,以便SDK按预期在$u请求中找到它们。如果重写将这些组件转换为路径组件,SDK将无法识别它们。(在这种情况下,您仍然可以在初始化SDK之前自己在$_REQUEST中设置它们。)@CBroe我已经更新了问题,但仍然不起作用。。我认为有些东西正在运行,或者可能不是apache for achive的所有模块都处于活动状态。