0

我开发了一个 Facebook Web 应用程序(因此,当您在 apps.facebook.com/myappname 加载它时,它会存在于 iFrame 中)。

在 Facebook 应用设置中,我已将“Facebook 上的应用”部分设置为包含画布 URL 和安全画布 URL。

如果我还检查“移动网络”部分并输入移动站点 URL 的安全画布 URL,那么每当我从移动浏览器(例如 iPhone、iPad)加载应用程序时,我都会收到以下错误:“移动版本的应用程序“APPNAME”不可用,因为它被错误地配置为移动访问。”

如果我尝试从 Facebook iOS 应用程序访问该应用程序,我也会看到相同的错误。

但是,如果我没有移动站点 URL,那么我在移动 safari 中看不到任何错误,但我在尝试从 Facebook iOS 应用程序中链接到该应用程序时遇到不同的错误:“此应用程序尚未配置其移动 Web URL 或 URL 无法验证为由应用程序拥有。无法重定向。”

我进行了很多搜索,但无法找到正确的设置组合的明确方向。我应该指定移动网址吗?可以和canvas URL一样吗?等等

我目前没有在“应用程序设置”的“应用程序域”字段中指定任何内容,因为一个记录在案的错误似乎说这可能会破坏事情(并且当它到位时它确实会导致错误)。

至于应用程序本身的代码,它并没有做任何复杂的事情,代码的基础只是使用 PHP SDK 进行身份验证,如下所示:

<?php
    // get user from the facebook object
    $facebook = new Facebook(array(
        'appId' => $config['appId'],
        'secret' => $config['secret'],
    ));

    $user = $facebook->getUser();

    // if user is not loggedin, redirect to loginpage
    if(!$user){
        $login_url = $facebook->getLoginUrl(array(
            'redirect_uri' => 'MY_APP_URL_HERE'
        ));
        echo "<script type='text/javascript'>top.location.href = '$login_url';</script>";
        exit();
    }

    //get user from the facebook object
    $user = $facebook->getUser();
?>

任何人都可以在这里提供的任何帮助或线索将非常非常感谢。

谢谢!

4

2 回答 2

0

如果您设置 redirect_uri 它不能指向移动设备上的画布应用程序 URL。尝试在您的移动 URL 中添加一个查询字符串变量,并在确定您的 redirect_uri 时检测该变量,或者如果您不需要控制 redirect_uri,则忽略它(它不是必需的参数)。我不确定为什么 FB 不只是让它然后再次重定向到移动 URL 而不是给出错误 - 猜测是因为它们会破坏开发人员在设置 redirect_uri 时明确指定的行为。

于 2013-12-11T00:05:19.620 回答
0

在对 fb 错误的评论中发布了一种解决方法:https ://developers.facebook.com/bugs/124226157757972

Kirill Kazakov · Ecwid 的软件开发人员 有趣的解决方法是从基于 javascript 的重定向中删除引荐来源网址。

于 2013-05-31T15:32:33.007 回答