我有一个纯粹的服务器端应用程序,我正在编写,需要从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(在浏览器中)时,它要求我允许“App”发布到“我的页面”,当然我说是。它再也没有问过我。现在我只是被重定向到一个新的URL,里面有一个很棒的访问令牌。
http://localhost:8080/#access_token=<awesome-access-token>&expires_in=4482
我通常只能从查询字符串参数中读取这个值,但我意识到它是服务器端代码无法读取的页面框架(#)URL。
我还尝试拦截第一个URL重定向,并读出302 LOCATION标题,但是,它似乎是一个重定向链。
如何解决这个问题?