Facebook登录返回code作为查询字符串变量 [英] facebook login returns code as variable in query string
问题描述
我使用Facebook登录我的网站之一,使用PHP的SDK。
I am using a Facebook login in one of my website using the sdk for PHP.
有时Facebook登录工作,有时没有。
Sometimes the facebook login works and sometimes it doesn't.
下面是我的index.php:
Here is my index.php:
/// fb login area.....
include("facebook/src/facebook.php");
$facebook = new Facebook(array(
'appId' => '159326560901256',
'secret' => 'c6b30bd2f80747b64d5b1d15a3da9e9c',
));
$user = $facebook->getUser();
$loginUrl = $facebook->getLoginUrl(array(
'scope' => 'email',
'redirect_uri' => 'http://xyz.com/login_fb.php'
));
<a href="<?=$loginUrl?>"><img class="fb_img"
src="images/fb_logo.png" width="153" height="38" /></a>
它转到 login_fb.php
:
<一个href=\"https://www.facebook.com/dialog/oauth?client_id=123131231&redirect_uri=http%3A%2F%2Fxyz.com%2Flogin_fb.php&state=403bc8aaf9eaee4064e3cc27befc71ff&scope=email\" rel=\"nofollow\">https://www.facebook.com/dialog/oauth?client_id=123131231&redirect_uri=http%3A%2F%2Fxyz.com%2Flogin_fb.php&state=403bc8aaf9eaee4064e3cc27befc71ff&scope=email
现在login_fb.php我得到这个网址:
now on login_fb.php i get this url:
login_fb.php?code=ASA&S^&*A^S&*A^S&*^A&*ASUAUIYSUIYASIYAUSYUIASA
和 $用户
我得到 0
/// code for login_fb.php
include("facebook/src/facebook.php");
$facebook = new Facebook(array(
'appId' => '159326560901256',
'secret' => 'c6b30bd2f80747b64d5b1d15a3da9e9c',
));
// Get User ID
$user = $facebook->getUser();
if ($user) {
try {
$user_profile = $facebook->api('/me');
}
catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
$logoutUrl = $facebook->getLogoutUrl(array(
'next' => 'http://minuteville.com/index.php?val=fblogout'
));
为什么不工作?
推荐答案
通过添加以下行,并在Facebook的SDK使用 getAccessTokenFrom code
,
问题可以得到解决。
By adding the following line and using getAccessTokenFromCode
in Facebook SDK,
the problem can be resolved.
该acesss code到期。因此,通过交换code获得新的访问code可以解决该问题。
The acesss code expires. So getting new access code by exchanging code resolves the problem
$ access_ code = $ facebook-&GT; getAccessTokenFrom code($ _ GET ['code']);
这篇关于Facebook登录返回code作为查询字符串变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!