Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Facebook 访问令牌到期未得到延长_Facebook_Authentication_Facebook Oauth_Facebook Authentication - Fatal编程技术网

Facebook 访问令牌到期未得到延长

Facebook 访问令牌到期未得到延长,facebook,authentication,facebook-oauth,facebook-authentication,Facebook,Authentication,Facebook Oauth,Facebook Authentication,我可以得到一个有效期为60天的访问令牌,但我无法延长到期时间。我这样做是为了能够通过一个用户访问Facebook页面。这是我的流程 我打电话给: 然后,我使用从上述URL获得的令牌调用此URL: 这个周末我已经尝试过多次了,在每个实例中,我都得到了相同的访问令牌,但是过期时间没有更新。我通过访问浏览器中的URL来实现这一点 我是否错过了任何可以续期的内容?我认为页面管理员用户必须在这60天内返回到您的应用程序,以获得一个新的访问令牌,该令牌上有延长的时间。我不认为您可以(或应该)被允许仅通过

我可以得到一个有效期为60天的访问令牌,但我无法延长到期时间。我这样做是为了能够通过一个用户访问Facebook页面。这是我的流程

我打电话给:

然后,我使用从上述URL获得的令牌调用此URL:

这个周末我已经尝试过多次了,在每个实例中,我都得到了相同的访问令牌,但是过期时间没有更新。我通过访问浏览器中的URL来实现这一点


我是否错过了任何可以续期的内容?

我认为页面管理员用户必须在这60天内返回到您的应用程序,以获得一个新的访问令牌,该令牌上有延长的时间。我不认为您可以(或应该)被允许仅通过应用程序扩展访问令牌

见:

注意:用户必须先访问您的应用程序,然后才能获取 一个有效的“授权码”,能够使服务器端oAuth 再打一次。应用程序将无法设置 尝试自动延长过期时间,因为 “授权码”是短期的,将过期


我刚刚遇到了这个问题。问题是,我的FB应用程序中禁用了“不推荐脱机访问”。禁用时,扩展令牌始终返回一个短期令牌。启用后,我可以获得长寿命的访问令牌。

facebook开发者不赞成离线访问,但通过将应用id、应用机密和当前访问令牌传递到以下url,您仍然可以将访问令牌的使用寿命延长到60天:


注意:现有的\u访问\u令牌必须是有效的访问令牌(不是过期的)。

但是使用应用程序包括哪些内容?用户是否只是在Facebook的任何标签上使用它,然后自动扩展令牌?或者我需要再次将它们发送到oauth对话框吗?当用户返回应用程序时,他们不需要获取oauth对话框(它可能会临时弹出,具体取决于您执行oauth的方式),但用户不需要做任何事情,只需以某种方式与您的应用程序交互,从而导致您的代码获取用户访问令牌。检查到期日期,如果不是60天,则立即通过该流程进行延期。仍然没有完全弄清楚,但用户需要采取措施延期代币的说法似乎是正确的。Facebook可能正在读取一些会话变量,以确保用户当前已登录。