【问题标题】:Facebook mobile web application started throwing API Error Code:196Facebook 移动 Web 应用程序开始抛出 API 错误代码:196
【发布时间】:2012-03-11 21:01:51
【问题描述】:

我有一个 Web 应用程序,它在 facebook 中配置为画布 Web 应用程序,并且还提供了一个移动 url,其中移动特定页面是从 Web 服务器提供的。应用程序已经运行了大约 3 个月并从上周开始(我相信问题是上周开始的,过去 3 个月没有应用程序部署)当我从我的 android 手机访问应用程序时,从本机中的应用程序快捷方式android facebook 应用程序,facebook 抛出以下错误

API 错误代码:196 API 错误描述:无法重定向到移动设备上的桌面 Web 画布 URL。 错误消息:redirect_uri 不属于此应用程序。

我可以看到请求正在发送到我的网络服务器,并且在我将重定向 url 发送到移动设备后,它会引发上述错误。

由于没有代码更改,我对这个新错误有点困惑,并且谷歌搜索这个 api 错误号没有返回任何点击,除了一个日本网站上周有人提到了这个错误,但是不要'没有看到任何解决方案。

错误消息“无法重定向到桌面网络画布...”似乎是不言自明的,但我不知道出了什么问题,特别是因为之前同样的工作,除非 FB 改变了他们的任何在我的应用程序配置中引入新问题或暴露现有问题的代码。

【问题讨论】:

    标签: facebook mobile facebook-canvas


    【解决方案1】:

    为此迷路了 1 天,尝试阅读 2 篇日语(未翻译)博客。然后我想通了!

    在应用设置中,请勿为移动应用输入相同的网址!

    示例:

    普通画布或网站网址: https://www.stackoverflow.com/

    (它会自动将您带到https://www.stackoverflow.com/index.php

    手机网址:https://www.stackoverflow.com/mobile/

    (它会自动将您带到https://www.stackoverflow.com/mobile/index.php

    然后在您的托管根文件夹中创建一个“移动”文件夹。

    现在移动文件夹中的唯一区别将是重定向 uri。

    我正在使用 url 重定向,这是 facebook 建议的。

    https://developers.facebook.com/docs/reference/dialogs/oauth/

    CRITICAL:确保您的重定向 uri 不是画布地址,而是网络服务器地址!

    错误的重定向 uri:https://apps.facebook.com/mobile/yourappname/

    正确的重定向 uri:https://yourwebsite.com/mobile/

    这会让 facebook 认为它是一个临时移动网站!一切都会按预期进行!

    【讨论】:

    • 你拯救了我的一天!当您输入这些相同的网址时,Facebook 确实应该警告它们。
    【解决方案2】:

    我有同样的问题,我解决了它没有设置“redirect_uri”参数,像这样。

    $url = $facebook->getLoginUrl(array(
        'scope' => 'xxxx, xxxx, xxxx',
        'display' => 'touch'
    ));
    

    如您所知,我们可以将“Canvas Page URL”值设为

    http://apps.facebook.com/[您的应用名称空间]

    之前改为“redirect_uri”参数,但我猜该参数的规格在上周中旬发生了变化。 我遇到了同样的错误,“API 错误代码:196”。

    访问我的页面。 http://nobish.jp/facebook/app-install-api-error-code-196.html

    【讨论】:

    • 感谢您的回复,我仍然无法弄清楚需要更改什么,我有一个 servlet 过滤器,我可以从那里进行重定向,这是我目前正在使用的重定向 url直到上周 facebook.com/dialog/…> ,想知道构造重定向 url 的新正确方法是什么?
    • 有谁知道如何在 stackoverflow 中将 URL 粘贴为文本而不是转换为 URL,我在上面尝试过,但它被转换为 url,并且大部分不可见。
    • 对不起,我用 PHP 构建了我的应用程序。你用 RestFB 构建?
    • 我的是一个java应用程序。您能否粘贴 $url 变量的最终值(在新更改之后),它可能会帮助我找出我的修复方法。
    • 一种方法是不设置“redirect_uri”参数,另一种方法是设置您的应用程序部署的 url 的值,例如 https://[您的 Web 服务器 FQDN]/[您的应用程序 DocumentRoot]/ 结果将是相同的。应用启动(安装) url 将是 facebook.com/dialog/oauth?client_id=[yourapp id]&redirect_uri=https://[你的网络服务器 FQDN]/[你的应用 DocumentRoot]/&state=[status]
    猜你喜欢
    • 2012-06-06
    • 2013-01-26
    • 1970-01-01
    • 2012-07-09
    • 1970-01-01
    • 1970-01-01
    • 2011-11-30
    • 2014-09-17
    • 1970-01-01
    相关资源
    最近更新 更多