1

目前我正在使用 iOS api 获取访问令牌并将其作为 cookie 传递给 webview。在 webview 中(因为我的应用程序的一部分是 iOS,另一部分是 html5,但我不想让用户登录两次)我正在获取服务器端的访问令牌。

我正在使用setAccessToken()函数设置访问令牌(使用 Facebook PHP SDK),但是之后,当我调用getUser()时,我总是返回 0。

我知道 SDK 通常可以正常工作,因为我使用的所有代码都适用于正常的“网络”版本。其他人似乎已经完成了这项工作,所以我希望这实际上是可能的。一直坚持这一点,所以非常感谢任何帮助/建议尽快让它工作!谢谢!

4

1 回答 1

1

在我的所有代码中,我现在不执行“getUser”来查找令牌是否有效,而是执行“/me”调用。getUser() 在“/me”工作的地方经常失败。所以你并不孤单。然后我改为从 /me 调用中获取用户 ID。当然,所有这些都包含在 try/catch 中:)

另一个提示:您说您将会话作为 cookie 传递 - 希望这是您控制的 cookie?根据我的经验,不要混合使用“cookie”和“非 cookie”模式——如果您在一个系统中手动处理 get/setAccessToken,那么请在所有地方关闭 cookie(webview、php 服务器、Javascript 等)。在此之后,我在尝试做的事情中传递令牌没有问题。

要注意的另一件事是,如果您“setAccessToken”并且它无效,那么 PHP SDK 将清除您的会话变量(如果有的话)。不仅仅是 PHP 会话变量,而是所有这些变量。

最后,我还让 /me 返回了逻辑值,但 FirstName 之类的内容为空白。尚未解决为什么会发生这种情况(可能永远不会),但在共享令牌时需要编程其他东西。

是脸书。从来没有想过容易{咧嘴笑}。

希望有帮助。

于 2012-05-26T07:37:36.370 回答