重写URL崩溃facebook sdk for php
我有这种情况。 在MVC web应用程序上,我们正在重写url:重写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
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的所有模块都处于活动状态。