首页 文章

Facebook:如何从用户的访问令牌获取应用ID - 使用/ app?access_token = TOKEN?

提问于
浏览
4

我们允许用户仅使用facebook访问令牌作为凭证来访问我们的后端(使用带有json回复的https的REST api),因此我们想做两件事:

谁能告诉我这是否实际上是一种可能留在那里的标准方法?或者是否有其他方式来做我们想做的事情:验证用户的访问令牌是否有效并来自我们的Facebook应用程序 .

你可以打电话给我/权限和我吗?fields =安装,但这些似乎都告诉我我们正在检查的WHICH facebook应用程序 .

3 回答

  • 2

    您可以向每个请求传递access_token的signed_request insted . 参数signed_request基于应用程序的密钥,您可以简单地验证它 . 阅读documentation关于已签名的请求 .

  • 0

    您应该按照docs(客户端或服务器端)中的描述实现身份验证流程 . 基本上,您可以通过使用您的应用程序对用户进行身份验证来获取新的访问令牌,并将该令牌用于对服务器的请求 . 这样您就可以确保将令牌"belongs"添加到您的应用中 . 要做的步骤:

    • 使用您的应用ID初始化您选择的Facebook SDK .

    • 检查用户是否已经授权您的应用 .

    • 如果用户已经授权您的应用程序,您将获得他或她的Facebook用户ID以及令牌("belongs"到您的应用程序),如果没有:验证用户并获取令牌 .

    docs为您提供示例代码和许多详细信息:

    UPDATE:

    您提到的功能记录在here(向下滚动到2.向API发出请求):

    应用程序访问令牌允许您作为应用程序而不是用户发出请求 . 要检索应用程序的详细信息,请执行HTTP GET:https://graph.facebook.com/app?access_token = APP_ACCESS_TOKEN

    因此该功能可能会保留 .

  • 3

    这是旧的,但我最近也有同样的担忧 . 我认为最直接的方法是使用 debug_token 检查访问令牌 .

    GET graph.facebook.com/debug_token?
     input_token={token-to-inspect}
     &access_token={app-token-or-admin-token}
    

    参考:https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow#checktoken

相关问题