承认经过身份验证的推荐机制当前不适用于 Facebook 应用程序的移动 Web 设置,我遇到了基于返回代码验证访问令牌的问题。
我试图获取访问令牌的 URL 是: https ://staging.fanhood.com/facebook/mobile/challenge?fh_gameChallengeID=2678&ref=web_canvas&refid=9&refsrc=http://apps.facebook.com/fanhood-开发/挑战&返回=真
这是访问者在通过此 URL 进行预身份验证后发送到的 URL:http ://apps.facebook.com/fanhood-dev/challenge?fh_gameChallengeID=2678 。但是,与常规的经过身份验证的引用不同,没有额外的数据传递到 URL 中,因此应用程序可以缩短 oauth 重定向循环。
当用户被重定向回来时,我确实收到了一个代码来交换:
Code: AQBCH25OC57BiMBgj3rCKGhkFi0ypp0R8e2yKGwFfhml9x1B47-w2Baex8oZ3BKgb2NhziRnSIuJ1MV9hErKBUhu0YqxaonwFF_7mcqozwpy3Ch08rkNh-YEIa6HV_LHxl6pymfkAbQEMgSA6F4BdtINsCQ7QlLpcRwrZWkzxZVyJbJDnqOesB3zFLr5ohpgtpQ
但是,我目前没有任何交换此代码的请求有效。我正在尝试不同的 redirect_uri 格式变体,但都不起作用:
原始 URL 为 redirect_uri:
我有一种机制可以去除特定的查询参数,按字母顺序重新排序,然后重新组合,以便 redirect_uris 在请求之间保持一致。在这种情况下,redirect_uri 与传递给对话 URL 的内容完全匹配: https ://staging.fanhood.com/facebook/mobile/challenge?fh_gameChallengeID=2678&ref=web_canvas&refid=9&refsrc=http://apps.facebook.com /fanhood-dev/challenge&returned=true == https://staging.fanhood.com/facebook/mobile/challenge?fh_gameChallengeID=2678&ref=web_canvas&refid=9&refsrc=http://apps.facebook.com/fanhood-dev/challenge&returned=真的
对经过身份验证的推荐的空白 redirect_uri 尝试:
redirect_uri 结构为我们的移动画布 URL:
redirect_uri 结构为我们的画布 URL:
有谁知道 Facebook 用于移动 OAuth 请求的 redirect_uri 格式?如果支持查询参数?这个相同的 URL 适用于我们的常规画布应用程序,但不适用于我们的移动版本。