php - facebook登录将代码作为查询字符串中的变量返回

标签 php facebook api

我正在使用 PHP sdk 在我的网站之一中使用 Facebook 登录。

有时 facebook 登录有效,有时则无效。

这是我的 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 :

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 我得到这个网址:
login_fb.php?code=ASA&S^&*A^S&*A^S&*^A&*ASUAUIYSUIYASIYAUSYUIASA

并在 $user我收到 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'
    ));

为什么它不起作用?

最佳答案

通过添加以下行并使用 getAccessTokenFromCode在 Facebook SDK 中,
问题可以解决。

访问代码过期。因此,通过交换代码获取新的访问代码可以解决问题
$access_code = $facebook->getAccessTokenFromCode($_GET['code']);

关于php - facebook登录将代码作为查询字符串中的变量返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16009846/

相关文章:

java - Facebook 登录方法 Onload

facebook - 获取用户所有未完成的 Facebook 请求

java - 用另一种语言包装 C++ 对象的策略——内存管理

java explode a line/string 像 php explode

php - CommentController.php 第 43 行中的 Laravel 5.1 ErrorException : Undefined index: body

c# - 如何允许用户作为页面登录,然后使用 C# Facebook SDK 作为该页面发布?

api - .net core - 如何在 AuthorizationHandler 上返回 403?

python - google-api-python-client 1.9.3 的重大更改 - AttributeError : module 'google.api_core' has no attribute 'gapic_v1'

php - 使用 move_uploaded_file HTTP 包装器出错不支持可写连接

php - 按投票排序 DESC 但未投票不显示