我正在使用iOS应用程序,用户需要能够访问Facebook Graph API而无需登录Facebook(因为他们仅以电子邮件方式注册我的应用程序)。他们主要需要检索其他Facebook用户'公共提要(名人等),以便我可以在关于框中显示该信息。在旧的API中,我认为这被称为公共搜索或离线访问,但这些似乎已被Facebook弃用。我想知道是否直接使用app-id作为令牌:
How to get a Facebook access token for a page with no app or app secret
代替那个,我可以使用"客户端令牌"于:
https://developers.facebook.com/apps/ {你的应用内-ID} /设置/先进/
以及:
[FBAccessTokenData createTokenFromString:]
[FBSession openFromAccessTokenData:]
使用我的应用凭据将用户登录到Facebook?另一种选择可能是以编程方式匿名登录用户:
https://developers.facebook.com/products/anonymous-login/
我很难在FacebookSDK.framework中找到相应的电话。唯一提及的是#34; anonymous"我能找到的是:
[FBSettings setClientToken:]
从文档中:"设置Facebook应用程序的客户端令牌。这是匿名匿名的某些API调用所必需的,没有基于用户的会话。"
如果这一切都不可能,那么我可能需要回退到使用node.js服务器从app令牌为用户生成一个长期存在的令牌。这将在"从服务器端长期令牌生成长期用户令牌"部分:
https://developers.facebook.com/docs/facebook-login/access-tokens
我知道如何在这里获得一个令牌:
https://developers.facebook.com/tools/access_token/
https://developers.facebook.com/tools/explorer/?method=GET&path=me%3Ffields%3Did%2Cname&version=v2.2
然后使用node.js以某种方式扩展它并将其传递给客户端:
facebook: permanent Page Access Token?
Obtain new Access Token without Facebook Login
或者使用app_id | app_secret代替令牌,完全跳过获取令牌:
trying to get app access token
但不清楚如何将它从node.js传递回客户端。我对所有这些感到非常困惑,并且不明白为什么使用图API访问公共数据没有更好的记录。我有正常的用户登录在iOS工作,如果我找到一个可以从网上调整匿名登录示例。任何例子都将不胜感激。
更新
These instructions和these docs帮助我从应用ID中创建了一个可以用于Facebook API访问的长期令牌。这是通过像php这样的后端服务器来完成的,但是有可能通过URL请求将它调整到iOS(显然,你只能与客户共享令牌,而不是MY_CLIENT_SECRET)。我没有调查当许多客户通过应用程序令牌向Facebook API发出请求时会发生什么。