javascript - FB.login,防止启动新窗口,在当前窗口导航

标签 javascript jquery facebook facebook-graph-api

我在移动应用程序中使用它,如果用户在同一窗口中离开应用程序然后被重定向回来,实际上会是更好的用户体验。

我们已将登录页面重定向回我们的应用程序,但在他们单击登录时防止打开新窗口的最佳方法是什么?

这是 yummy coffeescript 中 facebook lib 提供的方法 -

FF.login = (a, b) ->
  if FB._oauth
    throw new Error("OAuth2 specification states that 'perms' " + "should now be called 'scope'.  Please update.")  if b and b.perms
    FB.ui FB.copy(
      method: "permissions.oauth"
      display: "popup"
    , b or {}), a
  else
    FB.ui FB.copy(
      method: "permissions.request"
      display: "popup"
    , b or {}), a

是否有替代 display: "popup" 的方法来触发窗口中的导航?

或者我们可以传入的参数?

编辑:

我在 FB.ui 方法中找到了这个:

“display”必须是“popup”、“+”“dialog”、“iframe”、“touch”、“async”、“hidden”或“none”之一

我需要直接编辑登录方法还是可以将这些显示选项作为参数传递?

EDIT2:我想我能做到吗?

window.location='https://www.facebook.com/login.php?api_key=YOUR_API_KEY&cancel_url=YOUR_ESCAPED_CANCEL_URL&fbconnect=1&next=THE_ESCAPED_URL_TO_RETURN_TO_AFTER_LOGIN&return_session=1&session_version=3&v=1.0&req_perms=ESCAPED_LIST_OF_REQUIRED_PERMISSIONS'

有什么方法可以使现有的 FB.login 方法更好地工作?

谢谢!

最佳答案

FaceBook 在迁移到 OAuth2.0 时将关键字“Perms”更新为“Scope”,请将关键字“Perms”更改为“Scope”

*旧代码://}, { perms: 'read_stream,publish_stream,offline_access' });

新代码:}, { scope: 'read_stream,publish_stream,offline_access' });*

只需评论或删除旧的 Perms to Scope。

关于javascript - FB.login,防止启动新窗口,在当前窗口导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8074500/

相关文章:

java - Facebook App Event sdk 4.38.0 在 ViewHierarchy.setAppearanceOfView 中抛出 NPE

ios - 在 Facebook 上发布状态

javascript - jQuery ajax 不发送数组

jQuery dom 遍历嵌套表

javascript - 如何推断复选框值?

javascript - 为什么在创建对象的新实例时函数的属性没有被覆盖为默认值?

javascript - 使用 json 中的 javascript 检索总数

javascript - Magento - 如何创建按产品品牌浏览的链接

javascript - 使用 getUserMedia 访问设备摄像头

javascript - IOS Safari 窗口在 touchstart 或 touchend 上打开