我使用的是Python和一个javascript或php sdk。
要获得access_token -I,请按照文档页面(https://developers.facebook.com/docs/authentication/)上的步骤进行操作。我将重定向url传递给dialog/oauth并获得access_token。完成此操作后,发送回浏览器的所有输出html都将呈现到一个新页面中,留下facebook iframe/canvas。(仅供参考,所有输出都是通过通常的“self.response.out.write”函数调用完成的)。
似乎PHP sdk隐藏了这一点,并且我找不到一种方法来获取:http://www.facebook.com/dialog/oauth?client_id=%s&redirect_uri=%s“对话框,将来自重定向的url的输出发送到触发应用程序的iframe/canvas。这是一个‘page Tab’应用程序(不是‘Facebook上的应用程序’),所以我在基本应用程序配置页面上设置了"Page Tab Name”和"Page Tab Url“。
我还没有实现session,我想知道是否有必要将iframe目标作为状态变量传递,并将其与重定向一起传递回uri。
我已经搜索了许多帖子/等,但没有运气,任何帮助都将非常感谢!
发布于 2011-11-30 11:25:00
选项卡页应用程序未记录的步骤:
我花了几个小时的研究和挖掘来理解这一点,并希望它能有所帮助(我看到很多关于页面突破iframe/canvas的问题),基本的问题是FB没有在任何地方记录的额外的重定向步骤……
(给我发邮件,我很高兴分享python代码,这些代码现在都运行得很好)
发布于 2012-01-16 22:04:34
这在其他地方也有说明,但要明确的是:你的应用程序脱离facebook的原因是因为身份验证对话框远离了原始的apps.facebook.com url。
这可能只在扩展权限时发生,因为新权限屏幕是两页而不是一页。
一旦授权过程完成,浏览器就会被重定向到服务器上的完全合格的应用程序url。
“修复”方法是使用http://apps.facebook.com/appname地址将浏览器发送回Facebook应用程序。
对于大多数人来说,这似乎不是一个好的“流”,但这就是现在的情况。我想可能有一种不同的途径,那就是在应用程序的“认证对话”页面上使用“认证推荐”,但还没有使用过。
我使用PHP SDK,下面是我做的事情:
当您的redirct_url在授权后被调用时,
'‘
// after completing the first authorization, the redirect url may send users away from Facebook to the redirect url itself.
//This php code redirects them back to the app page
if (isset($_GET['state'])){ header("Location: http://apps.facebook.com/appname']); exit; }如果你知道更好的方法,请让我知道!
https://stackoverflow.com/questions/8275518
复制相似问题