Facebook and Parse: Code 251, Error: Parse::InvalidSessionError

Facebook and Parse: Code 251, Error: Parse::InvalidSessionError

我正在尝试设置一个 chrome 扩展,它使用 Facebook 访问令牌通过 JS api 登录到 Parse。作为概念证明,我尝试使用 curl 遵循示例 here,但是当我输入 access_token 和 expiration_date 时,POST 调用 returns {"code":251,"error":"Parse::InvalidSessionError"}

具体来说,我是从 OSX shell 调用它的。

curl -X POST

-H "X-Parse-Application-Id: [my app id]" \
-H "X-Parse-REST-API-Key: [my rest api key]" \
-H "X-Parse-Revocable-Session: 1" \
-H "Content-Type: application/json" \
-d '{
      "authData": {
        "facebook": {
          "id": "[my id as a string]",
          "access_token": "[my token as a string]",
          "expiration_date": "2015-10-26T07:45:16.579Z"
        }
      }
    }' \
https://api.parse.com/1/users

我在谷歌上搜索了一下,包括阅读以下帖子,但在多次更改我的 Facebook 应用程序设置并重新验证后,它仍然抛出相同的错误。

Using FB user to login on parse. Error code: 251, Invalid Sesion Error

Parse Facebook login fails with error code 251

郑重声明,我已经尝试将我的 "App Secret embedded in the client" Facebook 设置更改为 false,并将我的 "Native or desktop app?" 设置为是和否(我很确定它应该设置为是的,因为我使用的是桌面应用程序 FB 登录流程。)我还将我的 Facebook 应用程序添加到我的解析应用程序,并在解析时启用了 Facebook 集成,并仔细检查了我的解析应用程序和其余 api键。

请让我知道我还应该尝试什么,或者您需要什么其他信息来评估它。

我处理这个问题的方式有两点不对。

  1. 我通过将 "Expires_in" 字段(使用 this FB login flow 返回)添加到我的浏览器计算的当前时间来创建 "Expires_at" 字段。回想起来这很愚蠢,因为过期时间应该是准确的,网络延迟会稍微改变计算的时间。

  2. 我在请求时使用了错误的 Facebook ID - 现在有两种类型的 ID,您需要使用正确的一种。 See this link..