目前我正在使用 iOS api 获取访问 token 并将其作为 cookie 传递给 webview。在 webview 中(因为我的应用程序的一部分是 iOS,另一部分是 html5,但我不想让用户登录两次)我在服务器端获取访问 token 。
我正在使用 setAccessToken() 函数设置访问 token (使用 Facebook PHP SDK),但紧接着,当我调用 getUser() 时,我总是得到 0 返回。
我知道 SDK 通常可以正常工作,因为我使用的所有代码都适用于普通的“网络”版本。其他人似乎已经完成了这项工作,所以我希望这实际上是可能的。坚持了一段时间所以非常感谢任何帮助/建议尽快让这个工作!谢谢!
最佳答案
在我所有的代码中,我现在不执行“getUser”来查找 token 是否有效,而是调用“/me”。 getUser() 通常在“/me”起作用的地方失败。所以你不是唯一有这个发现的人。然后我改为从/me 调用中获取用户 ID。当然,所有内容都包含在 try/catch 中 :)
另一个提示:您说您将 session 作为 cookie 传递 - 希望这是您控制的 cookie?根据我的经验,不要混合使用“cookie”和“非 cookie”模式——如果您在一个系统中使用 get/setAccessToken 手动处理,那么请在所有地方(webview、php 服务器、Javascript 等)关闭 cookie。在此之后,我在尝试执行的操作中传递 token 时没有遇到任何问题。
另一件需要注意的事情是,如果您“setAccessToken”并且它无效,PHP SDK 将清除您的 session 变量(如果有的话)。不仅仅是 PHP session 变量,而是所有这些变量。
最后,我还让/me 返回了逻辑值,但是像 FirstName 这样的东西是空白的。还没有解决为什么会发生这种情况(而且可能永远不会),但是在共享 token 时需要编程的其他东西。
这是 Facebook 。绝不意味着容易{咧嘴笑}。
希望对您有所帮助。
关于php - 使用 setAccessToken() 设置 Facebook PHP SDK access_token,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10764248/