我正在尝试构建一个JavaScript Metro应用程序,该应用程序通过其Graph API提取Facebook公共数据(例如,来自Home Depot的帖子)。似乎始终需要访问令牌才能与Graph API进行交互。
为了获得访问令牌,需要将App ID和Secrets都发送到Facebook OAuth端点。这对于服务器端代码有意义,但对于客户端端则没有意义,因为应用程序机密无法与可以轻松拆包/反汇编/拦截的客户端代码一起提供。
所以我的问题是:
有没有办法在不使用访问令牌的情况下访问Graph API(公共数据)?
有没有一种方法可以获取访问令牌而无需通过App Secret发送?
可以对offline_access令牌进行替换吗?
请记住:
我只需要访问PUBLIC数据。
无需用户登录。
谢谢!
最佳答案
没有
一种选择是让用户登录并以这种方式获取他们的访问令牌。另一个办法是让您自己的服务器提供令牌创建服务,因此秘密不必在应用程序二进制文件中。
您可以将令牌交换为寿命更长的60天令牌https://developers.facebook.com/docs/facebook-login/access-tokens/#extending