【问题标题】:What is the value of redirect_uri after authentication in a facebook page tab?在 Facebook 页面选项卡中进行身份验证后,redirect_uri 的值是多少?
【发布时间】:2013-01-21 14:32:58
【问题描述】:

我正在尝试设置一个简单的 facebook 页面选项卡应用程序。我已经达到了从 facebook 图获得 access_token 作为响应的状态,并且似乎是正确的。我的问题是,在身份验证后,我被重定向到我的 facebook 页面标签 url,但 facebook 域之外,而不是在用户选择的页面标签中。

我的申请信息:



    Display Name:MyContest
    Namespace:mygoodcontest
    Contact Email:myemail@something.com
    App Domains: [ empty ]

    Page Tab Name: Contest!
    Page Tab URL:http://[mystaticip]:8080/facebookContest/app/index.do
    Secure Page Tab URL:https://[mystaticip]:8443/facebookContest/app/index.do
    Page Tab Edit URL:https://[mystaticip]:8443/facebookContest/app/admin/

该线程似乎与我的问题完全相关,并且似乎得到了无关紧要的回答。 Redirect to Facebook page tab after authentication

这个线程与我遇到的问题大致相同,但在画布应用程序上。不在 Facebook 页面选项卡应用程序上 Facebook canvas app "redirect_uri" breaks out of iframe after authorization & authentication

我所追求的是在成功授权后将经过身份验证的用户重定向到 facebook 页面选项卡内。

感谢大家的宝贵时间!

【问题讨论】:

    标签: facebook oauth facebook-apps


    【解决方案1】:

    验证用户时,您可以将redirect_uri 参数与您要重定向用户的URL 一起传递。您可以尝试在那里输入标签的网址。如果这不起作用(可能是因为您会收到错误消息说 uri 不属于您的应用程序),您可以简单地从 Facebook 外部的页面重定向到您的标签。

    【讨论】:

    • 嗨 Darvex,当您说标签网址时,您的意思是 facebook.com/mytestPage/app_[APPID]
    • 这是预期的错误:API 错误代码:191 API 错误描述:指定的 URL 不属于应用程序错误消息:无效的 redirect_uri:应用程序参数禁止指定的 url 地址是不是从您的页面重定向回 facebook 的一般做法?无论如何都不要冒犯,但这似乎很奇怪。
    • 不幸的是,我不能说这是否是正确的方式,但这是您通常会找到的方式。更不用说我创建的所有页面标签都不应该通过完整链接(您留在“页面标签网址”中的那个)提供
    • 我真的很抱歉,但我无法理解您所说的“”更不用说我创建的所有页面选项卡都不应该通过完整链接提供(您留下的那个) “页面标签网址”)“。如果我将应用程序转换为 facebook 画布应用程序,是否正确?一般来说...在 facebook 页面标签中验证用户是否应该如此困难?
    • 我的意思是我的页面不应该在 Facebook 之外访问。验证用户并不难,取决于您需要了解的有关用户的信息,您甚至可能不需要做任何事情。 Signed_request (developers.facebook.com/docs/howtos/login/signed-request) 包含用户是否喜欢您的页面等信息
    【解决方案2】:

    如果有人和我处于相同的位置,这就是我在@darvex 的帮助下设法做到的。问题是 facebook 肯定需要 redirect_url 参数。此外,redirect_url 参数必须与编辑页面选项中的页面选项卡 url 相同。所以我的理解是,facebook 将所有用户重定向到 facebook 之外(在这种情况下,“facebook 之外”是指你的服务器,你的页面)然后,你必须处理这个 http GET,正如@darvex 所说,将请求重定向到你的 facebook 页面带有 javascript 命令的选项卡。

    当您重定向到您的 facebook 页面选项卡时,魔法就会发生,例如www.facebook.com/mypage/app_12345678 ,该请求由您处理,因为有人请求了您的页面选项卡。但是,这一次 facebook 已经注册了这个特定用户已经对应用程序进行了身份验证,因此,当时正在处理的 http POST 有一个 signed_request 参数,如果你破解/解码(base64),你会在访问令牌中找到你需要的。那时,您有一个登录用户正在查看您的页面选项卡 - 在 facebook 内 - 和一个访问令牌来做你的伎俩。

    我不知道这是否是最佳做法,但似乎可行。如果有人有更好的方法,请随时发布。

    谢谢大家

    【讨论】:

      猜你喜欢
      • 2012-06-12
      • 2012-08-12
      • 1970-01-01
      • 2012-06-05
      • 1970-01-01
      • 1970-01-01
      • 2013-09-23
      • 1970-01-01
      • 2013-10-26
      相关资源
      最近更新 更多