facebook在canvas应用程序中获取offline_access的session_key

时间:2010-12-14 03:49:19

标签: php facebook canvas

嘿大家, 我想在canvas应用程序中获取facebook会话(offline_access)的session_keysecret

但是,我无法获得这两个特定变量。 当我在本地测试相同的代码时,我可以获得上面的变量(但这可能是因为本地应用程序不是画布应用程序)

我正在使用以下代码进行重定向:

$facebook->getLoginUrl(array(
   'canvas' => 1,
   'fbconnect' => 0,
   'req_perms' => 'user_status,publish_stream,offline_access'
));

有人建议我在用户授权应用程序时如何抓取session_keysecret? (用于永久离线访问)

以下是通过Facebook进行的session转储示例:

Array (
   [uid] => 100000926583671
   [session_key] => 
   [expires] => 0 
   [secret] => 
   [base_domain] => 
   [access_token] => 183043495039366|3ab6ac2asdkhj1bcfdec13d7-100000926583671|jJQaIT-n80YxioAasdwN0cm99U 
   [sig] => 2f64sadasc1da31c12927a052752776
)

这是错误:

Array (
   [error] => Array (
          [type] => OAuthException 
          [message] => An active access token must be used to query information about the current user. 
          )
   )

1 个答案:

答案 0 :(得分:1)

session_key 机密现已弃用,Facebook希望您使用Oauth身份验证架构。然后,你将不得不使用给定的 access_token (你正确进入$ session)来进行api调用。

尝试:

$session = $facebook->getSession();
$me = $facebook->api('/100000926583671', 
                     array('access_token' => $session['access_token'])
      );
var_dump($me);

价: http://developers.facebook.com/docs/authentication/