我搜索了Laravel Facebook SDK,我找到了这个适用于Laravel 4.2(我的Laravel应用程序版本)的软件包。我使用它只是为了获取我的 facebook 页面帖子,但我遇到了问题,我的访问令牌每 2 小时过期一次,或者在某些情况下由于其他原因(如 facebook 注销等)而过期。
我发现有两种方法可以处理过期的访问令牌,要么扩展访问令牌,要么使用旧的访问令牌请求新的访问令牌。
问题是如何请求新的访问令牌,因为我将其存储到我的数据库中,并且我需要一直获取我的 Facebook 页面帖子?
我已经按照这个说明进行操作,但对我来说它不起作用。
当我使用此代码时:
try
{
$token = Facebook::getTokenFromRedirect();
echo "Success<br>";
print_r($token);
}
catch (FacebookQueryBuilderException $e)
{
// Failed to obtain access token
echo 'Error:' . $e->getMessage();
}
我在屏幕上看到的唯一东西是Success
,仅此而已,就像$token
是空的一样。
我还检查了包含在SammyK LaravelFacebookSdk
中的Facebook查询生成器,并尝试使用getTokenFromCanvas()
而不是getTokenFromCanvas()
但是我收到此错误:Method getTokenFromCanvas does not exist
。
有什么想法可以完成这项工作吗?
默认情况下,Facebook 将返回一个用户访问令牌,该令牌将在 2 小时后过期。可以将其扩展为将持续 60 天的长期访问令牌。
在Laravel Facebook SDK 1.2中获得AccessToken
实体后,您可以扩展它,如示例中所示:
try {
$token = $token->extend();
} catch (SammyK'FacebookQueryBuilder'FacebookQueryBuilderException $e) {
dd($e->getPrevious()->getMessage());
}
在您的 GitHub 问题中,您提到了:
我想要实现的是从我的Facebook页面获取帖子
您可以使用页面访问令牌来抓取主页帖子。可以从/me/accounts
终结点获取页面访问令牌。
如果使用长期用户访问令牌获取页面访问令牌,则页面访问令牌将永不过期,因此最好将其存储在数据库中以从页面中提取帖子。
详细了解如何处理访问令牌。祝你好运!:)