我正在编写一个纯粹的服务器端应用程序,它需要从 Facebook 页面提取提要。该页面是“有年龄限制的(与酒精相关的)”,因此不允许在没有访问令牌的情况下访问图形 API。
如果使用访问令牌,它可以完美运行并返回完全可读的 JSON 提要:
https://graph.facebook.com/<page_id>/feed?access_token=<access_token>
问题是访问令牌过期。幸运的是,我有一个“不相关”的 App_Id,并且可以通过在浏览器中访问轻松获得新的访问令牌:
https://www.facebook.com/dialog/oauth?client_id=<my_app_id>&redirect_uri=http://localhost:8080&scope=manage_pages&response_type=token
我第一次访问这个 URL(在浏览器中)时,它要求我允许“应用程序”发布到“我的页面”,当然我说是的。它再也不会问我了。现在我只是被重定向到一个新的 URL,其中有一个很棒的访问令牌。
http://localhost:8080/#access_token=<awesome-access-token>&expires_in=4482
我通常只能从查询字符串参数中读取此值,但我意识到它是服务器端代码无法读取的页面框架 (#) URL。
我还尝试拦截第一个 URL 重定向,并读出 302 LOCATION 标头,但是,它看起来像是一个重定向链。
我该如何解决这个问题?