【问题标题】:Which way to go for reading public data using Graph API?使用 Graph API 读取公共数据的方式是什么?
【发布时间】:2025-12-03 08:50:02
【问题描述】:

我目前正在开发一个应用程序,该应用程序将在一个选项卡中显示 Facebook 页面的事件。现在我正在为 facebook 的图形 API 苦苦挣扎,我想我只需要更多解释一下整个事情的意义。

我注册了一个应用程序并获得了我的应用程序 ID、应用程序密码和访问令牌。通常它通过使用我的应用程序 ID 和访问令牌来工作。但据我所知,这样做有两个缺点。

  1. 令牌过期。
  2. 似乎一次只有一个令牌。

如果令牌过期,只要会话不再有效,我就需要重新验证我的应用程序。但是 - 这样做的正确方法是什么?是通过将我的数据添加到params字典来发送请求方法吗?

如果一次只能有一个应用访问令牌,当多个客户端要连接时会导致冲突吗?

我希望我的应用程序只读取公共数据,因此验证用户是不可能的,因为它根本不需要(我希望)。但是越想越觉得使用应用的token也不是正确的方式。

这通常是如何实现的?我是否需要一个包装器网络应用来实现读取公共事件数据?

感谢您的帮助

  • 阿恩

【问题讨论】:

    标签: ios facebook facebook-graph-api facebook-oauth


    【解决方案1】:

    我从来没有遇到过对多个用户使用一个应用令牌的问题。

    至于过期令牌,您可以通过向以下地址发送 GET 请求来请求通用令牌,该令牌应该足以检索公共数据:

    https://graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET&grant_type=client_credentials 
    

    【讨论】:

    • 嘿,我现在正在尝试这样做,但我得到一个“缺少 redirect_uri 参数”。使用 '[_facebook requestWithGraphPath:@"oauth/access_token" andParams:params andDelegate:self]' 代码应该没问题,不是吗? params 当然包含 client_id、client_secret 和 grant_type。
    • 没关系,我混淆了对象的键,d'oh。感谢您的帮助!