【问题标题】:Authenticate a user from a page tab从页面选项卡验证用户
【发布时间】:2012-01-24 02:09:41
【问题描述】:

我正在尝试制作一个 Facebook 页面标签,人们可以在其中从一堆嵌入文件中投票选出他们最喜欢的视频或音乐曲目。我需要从每个用户那里获得一个唯一的 ID,以确保他们只能投票一次。如果用户授权了我的应用,则 signed_request 仅包含用户的 ID。

我尝试让用户使用 FB.login() javascript api 授权我的应用程序,但我收到错误消息:

Remix // Rework Vote 发生错误。请稍后再试

API 错误代码:191

API 错误说明:指定的 URL 不属于应用程序

错误消息:无效的 redirect_uri:应用程序配置不允许给定 URL。

据我所知,我没有设置任何重定向 URL。我是否需要在某处进行设置,或者这是让用户验证我的页面选项卡的不正确方法?

【问题讨论】:

  • 您是否在应用程序设置中正确配置了“应用程序域”?
  • @JuicyScripter 不。它不会让我设置一个:Error You have specified an App Domain but have not specified a Site URL or a Mobile Web URL [domain] must be derived from your Site URL or your Mobile Web URL. 我看不到在哪里设置这些选项,可能是因为我只使用页面选项卡,而不是网站或移动设备网站。

标签: authentication facebook-page facebook-authentication


【解决方案1】:

您必须同时指定“Site URL”(或“Mobile Web URL”)和“App Domain”才能使用 OAuth 流程...

查看https://developers.facebook.com/docs/authentication/#redirect-uris的详细信息填写位置

【讨论】:

  • 我是否必须使用 OAuth 流,或者在页面选项卡画布页面上下文中是否有其他有效方式?我没有特别想使用 OAuth,我只需要从 Facebook 获取一个唯一 ID,根据我找到的文档,FB.login() 似乎是需要的。
  • FB.login 正在使用 OAuth 流程,所以是的,您需要使用 OAuth 对用户进行身份验证。
  • 当然可以,但是我必须使用FB.login,还是有其他方法? AFAIK,FB.login 对于页面选项卡来说可能是完全错误的,这只是我发现的第一件事,看起来有点模糊。
  • 链接以“当在身份验证流程中指定 redirect_uris”开头。我没有指定任何重定向 URI。我只是从我的页面选项卡中的第一个画布页面调用 FB.login。
【解决方案2】:

所以我设法通过在应用设置中勾选“Facebook 上的应用”来实现此功能,并将Canvas URLSecure Canvas URLs 设置为与页面标签URL 等效项相同。

即使这不是一个完整的应用程序,它也只是一个页面选项卡,并且除非它位于容器页面中,否则它不会作为应用程序运行。

我猜这是 Facebook 中的一个错误 - UI 暗示您可以拥有一个仅页面选项卡的应用程序。文档并没有说你不能,而且我想不出一个好的技术理由来不将页面标签 URL 视为有效 URL。

感谢@julio-santos 将我指向Facebook - Error Message: redirect_uri is not owned by the application,这在稍微不同的上下文中似乎是同一个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-12
    • 2012-05-14
    • 1970-01-01
    • 2012-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多