【问题标题】:How do I send a facebook request that links to an external site?如何发送链接到外部网站的 Facebook 请求?
【发布时间】:2011-10-27 09:54:09
【问题描述】:

在我当前的 .NET 和基于 FBML 的 facebook 应用程序中,我有一些如下所示的代码:

<fb:request-form
        action="http://mysite.com/InvitesSent.aspx"
        method="POST"
        invite="true"
        type="SomeType"
        content="Here is an invite to <fb:req-choice url='http://mysite.com?<%=Params %>' label='My site' />">
    <fb:multi-friend-selector
            max="20"
            actiontext="Invite your friends!"
            showborder="false"
            rows="4"
            bypass="cancel"
            email_invite="false"
            exclude_ids="" /> 
</fb:request-form>

这会在我的网站上弹出多朋友选择器,用户从中选择一些朋友并按“发送邀请”,此时用户将被重定向到http://mysite.com/InvitesSent.aspx

在另一端,邀请的接收者会看到带有“接受”按钮的通知。当按下按钮时,facebook 会立即重定向到我的网站

http://www.facebook.com/l.php?u=http%3A%2F%2Fmysite.com%3F ...

这是 facebook 的外部链接重定向的东西。此重定向包括我在 fb:req-choice url 属性中提供的参数。

我的问题是:由于FBML即将停产,我如何在Javascript SDK中实现这种行为?

我可以使用 FB.ui 和 apprequest 发送通知,但我似乎无法像在 FBML 中那样将参数附加到 URL。我需要这个,因为我希望奖励邀请者,为此我需要能够跟踪个人请求。

在新的 SDK 中是否有可能实现这一点?该文档令人困惑,有时会区分请求和邀请,有时则不会。老实说,我不确定是否有区别,我只是坚持 FBML 中的线索,例如 'invite="true"',这可能有助于我找到解决方案。

【问题讨论】:

    标签: facebook fbml invite


    【解决方案1】:

    这已经不可能了,这从developer documentation的以下段落中可以明显看出

    用户反应

    如果用户在请求上单击“接受”,他们将被发送到发送请求的应用程序的画布 URL。此 URL 将包含一个附加参数 request_ids,它是用户尝试操作的请求 ID 的逗号分隔列表:

    http://apps.facebook.com/[app_name]/?request_ids=[request_ids] 作为用户登陆您的应用程序时的最佳实践,您应该阅读未完成的应用程序请求。如果用户点击了来自仪表板的通知或请求,您将通过 URL 获得请求 ID。然后当用户处理请求时,您应该通过 Graph API 删除它们。

    当用户在 Facebook 的 API 中点击接受时,Requests 2.0 请求不会被删除。您必须使用 Graph API 读取并清除它们。

    所以你可以试试这个:

    1. 当用户向她的朋友发送邀请/请求时,读取 javascript 回调中的 request_ids,并使用 ajax 将它们存储到您的数据库中(这样您就可以调用InvitesSent.aspx)。

    2. 当新用户到来时,读取 request_id 并奖励发送请求的用户。

    如果您能告诉我当用户从外部网站发送请求并且另一个用户接受时会发生什么,使用新的 JS SDK,我可以更具体地使用解决方案。基本上,如果您密切关注浏览器 url,您就会知道 facebook 如何重定向接受的新用户。在文档中 accepting 仅提及画布应用程序,因此我不确定外部站点会发生什么。如果您对其进行测试,我们可以弄清楚。
    编辑:
    正如 Igy 建议的那样,我猜接受请求将始终重定向到画布。

    【讨论】:

    • 只需处理您画布 URL 上的请求,然后将用户从 Facebook 发送回您的主应用;我强烈建议不要静默/自动执行此操作,因为它会导致糟糕的用户体验。接受请求时的预期是它会将您带到 facebook.com 上的某个地方,因此在大多数情况下自动转发到其他地方是出乎意料的。如果您根本不想拥有画布应用,那么请求可能不是一个好用的渠道
    • @Igy 所以如果 izb 没有画布应用程序,只有一个网站,是否可以跟踪提要帖子,就像用户访问提要帖子中的链接一样,是post_id 附加到 url?
    • 为了记录,我没有画布应用程序。
    • 我认为您应该尝试使用提要帖子并奖励人们(他们的帖子被点击),从而为您的网站带来流量。乍一看,我无法弄清楚如何跟踪被点击的帖子。所以你必须做一些实验。万一你弄明白了,把它贴在这里,我也会对解决方案感兴趣。万一我想通了,会编辑我的答案:)
    猜你喜欢
    • 1970-01-01
    • 2010-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-11
    相关资源
    最近更新 更多