0

我正在使用 FB.login 在我的网站上登录 Facebook,它可以正常工作。

我可以通过 response.AuthResponse.accessToken 轻松获取 accessToken。

会话有效期为 2 小时。我从我读到的内容中了解到,使用 fb_exchange_token 您可以将其延长至 30 天或 60 天(我不确定哪个,我看到了两个数字)。

问题 1:这在 Javascript 中可行吗?我是否需要提供应用程序密码(我不想在 Javascript 中这样做,因为每个人都可以访问它)?有人可以提供一个代码片段来做到这一点吗?

我的计划是使用 ajax 将新获得的扩展令牌发送到 PHP,然后将其用于我正在执行的 PHP FQL 调用。目前我正在做:

$facebook = new Facebook(array('appId' => $app_id,'secret' => $app_secret));

$fql = 'SELECT first_name, last_name, movies, tv, FROM user WHERE uid =' . $uid;

$param = array('method' => 'fql.query','query' => $fql,'callback' => '');

$fqlResult = $facebook->api($param);

问题2:这可能是一个新手问题,但是如何在上面的PHP代码中使用ajax发送的新访问令牌?目前,我没有明确使用访问令牌并且一切正常(直到 2 小时到期)。

在此先感谢您的帮助,

里吉斯

4

1 回答 1

1

当您从 Facebook 取回访问令牌时,您应该将其发送回服务器,然后您可以在那里扩展它,而不必担心暴露您的应用程序密钥和秘密。

在服务器上获得访问令牌后,您可以使用以下方法将其添加到 Facebook 库中。

$facebook->setAccessToken($access_token)

然后,您进行的任何 api 调用都将以登录用户的身份执行。

于 2012-02-10T19:38:57.710 回答