我们最近推出了一个新应用程序,其中一个功能是如果用户喜欢特定页面,则提供折扣。我已在多个帐户上成功测试了该功能,我们继续进行了发布。我们使用图形 API 来检索他们喜欢的所有页面的列表,并检查所需的页面是否在其中:
https://graph.facebook.com/me/likes?access_token=ACCESS_TOKEN
我们有一些用户与我们联系并提醒我们,即使他们喜欢该页面,他们也没有看到折扣。我们能够请求其中一个帐户的详细信息,并观察到以下情况。
当应用程序被授权时,Facebook 将它们发送到我们的网站,并在 HTTP 请求中使用访问令牌(我们为图形 API 调用拉取)。
https://example.com/?ref=ts
POST /?ref=ts HTTP/1.1
...
Set-Cookie: fbs_uid=%22uid3D%26access_token%3[ACCESS_TOKEN_REMOVED]%26expires%3D1318381200%26sig%3Dd0b6fdf09befedf022cdea8b58887348%22; expires=Wed, 12-Oct-2011 01:00:00 GMT; path=/
所以你可以在那里看到访问令牌。奇怪的是,当我们尝试使用 Facebook 提供的访问令牌进行 API 调用时,它再次返回一个空结果(即使他们喜欢页面)——这仅适用于某些帐户。更令人困惑的是,当我们以同一会话(https://developers.facebook.com/docs/reference/api/)登录时进入 Facebook 开发者页面并单击 /me/likes 链接,我们得到用户喜欢的完整列表,但使用不同的访问令牌。
因此,为 Facebook 提供的访问权限似乎不足以提取数据。这只会影响某些帐户而不影响其他帐户,所以我想知道是否存在某种形式的配置问题,但从我的立场来看,我没有看到任何解决方法,因为 facebook 提供的数据似乎不正确。
使用 Facebook 提供的访问令牌,我们不会收到任何错误(即我们没有收到“验证访问令牌时出错”),因此访问令牌确实有效。