【问题标题】:Activity from Page Tab application - without Canvas来自页面选项卡应用程序的活动 - 没有画布
【发布时间】:2012-07-16 21:56:00
【问题描述】:

有没有办法只从页面标签应用程序发布活动?

我设法发布了活动,但该应用必须配置为 Facebook 上的应用(带有画布)。 这意味着应用程序的链接是 http://apps.facebook.com/... - 我只希望该链接位于页面选项卡应用程序上。

谢谢!

【问题讨论】:

    标签: facebook android-activity tabs


    【解决方案1】:

    在您的 Facebook 应用设置中设置页面标签 URL 和安全页面标签 URL。然后使用此对话框将应用添加到您的 Facebook 页面:https://www.facebook.com/dialog/pagetab?app_id=YOUR_APP_ID&redirect_uri=YOUR_PAGE_TAB_URL

    更新
    我建议你做一个重定向。您可以使用以下函数 (PHP) 检查应用是否显示在页面选项卡内:

    function referrerIsFacebookCanvasApp() {
        if (stripos($_SERVER['HTTP_REFERER'], "apps.facebook.com") === true) {
            return true;
        }
        return false;
    }
    

    但要小心 - 引荐来源标头可能是伪造的。

    更新 2(基于您的最新评论): 我想解决您的问题的唯一方法是将操作 id 与已发布操作的页面的页面 id 一起存储,然后读取 GET 请求参数,这些参数是这样传递的:

    https://apps.facebook.com/YOUR_APP_NAMESPACE/?fb_source=timeline_og&fb_action_ids=THE_ACTION_ID&fb_action_types=YOUR_APP_NAMESPACE%3ADO_SOMETHING&...

    或者这个

    http://www.facebook.com/l.php?u=https://YOUR_SITE.com/?type=OBJECT_TYPE&locale=en_US&title=TITLE&image=thumb.png&description=DESCRIPTION&fb_action_ids=ACTION_ID&fb_action_types=YOUR_APP_NAMESPACE%3ADO_SOMETHING&fb_source=aggregation&fb_aggregation_id=AGGREGATION_ID&...

    (您应该可以通过阅读 parent.location 来做到这一点)
    然后进行相应的重定向。

    【讨论】:

    • 是的,这样做了...这不是问题。问题是,从该应用程序中,我将使用 OpenGraph 操作发布有关活动的内容。应用程序的链接将是画布上的一个设置。我希望该链接指向页面标签。
    • 我不明白你的问题。您希望活动的链接指向您的页面标签吗?
    • 是的。如果我从应用程序发布到活动,则链接指向画布应用程序。我希望它指向页面标签应用程序。
    • 是的,谢谢你的想法,但在我的应用程序中,我需要来自 Facebook 的签名响应,即 POST-ed。
    • 应该没问题。只要您的应用程序加载到 Facebook 的画布中,您就应该能够阅读 Facebook 签名的请求。试试看:echo $_REQUEST["signed_request"];
    猜你喜欢
    • 2012-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-05
    • 2021-02-15
    • 1970-01-01
    相关资源
    最近更新 更多