Facebook api('/ me')没有验证

Dar*_*ryl 0 php facebook facebook-php-sdk

我最近一直试图让我的应用程序使用PHP SDK 3.0,并且看到我实际登录时遇到了一些麻烦.我有来自3.1.1下载的"example.php",它不承认我已登录.文件"with_js_sdk.php"也不承认我在你第一次运行时已经登录了.运行之后,然后该文件和"example.php"都会看到我已登录.一旦我退出,"example.php"不起作用,并且"with_js_sdk.php"在第一次失败运行,但所有后续运行的两个文件(以及我正在测试的其他一些文件)都将正确进行身份验证.如果不工作,所有文件都会显示"OAuthException",并显示以下消息:"必须使用活动访问令牌来查询有关当前用户的信息." 即使我已登录.所以我的问题是,"with_js_sdk.php"中是否有我可以在其他文件中设置的内容?我猜它与我读过的那个文件中的"oauth:true"有关,虽然我不是Facebook编码专家,所以我不确定.我有一个iframe应用程序,所以我的应用程序中没有"FB.init"部分(顺便提一下,直到sdk发生变化).这是我正在测试的最小代码,它给出了错误:

<?php

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

$facebook = new Facebook(array(
  'appId'  => '11111111111111111',
  'secret' => 'abcdefghijk etc...',
  'cookie'=>true
));

// See if there is a user from a cookie
$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) {
    echo '<pre>'.htmlspecialchars(print_r($e, true)).'</pre>';
    $user = null;
  }
}
?>
Run Code Online (Sandbox Code Playgroud)

getuser总是正确返回,但$ facebook-> api('/ me')调用总是失败,直到我运行一个带有fbml的文件.在你问之前,是的,我改变了文件中的appID和秘密.谢谢.

达里尔

小智 6

而不是me通过$user.例如:

$user_profile = $facebook->api('/'.$user);
Run Code Online (Sandbox Code Playgroud)