【问题标题】:Access facebook canvas URL parameters from my app从我的应用程序访问 facebook 画布 URL 参数
【发布时间】:2016-04-30 17:33:01
【问题描述】:

我正在制作一个 facebook 画布应用程序(游戏),我希望我的玩家使用带有 url 参数的链接,这些链接链接到游戏中的不同区域,即

https://apps.facebook.com/mgatlandtestapp?level=emeraldhillzone

如何在我的应用程序中访问 level=emeraldhillzone 信息(在 iFrame 中使用 javascript 的客户端,或作为 node.js 应用程序的服务器端)


到目前为止我尝试过的事情:

  1. 这个4-year-old answer 说可以在客户端代码中,但没有说明如何(对不起,如果我遗漏了一些明显的东西!window.location 给出了我的 heroku 服务器的位置,而不是 facebook网址。)

  2. 一些facebook documentation 让我觉得这可行:

使用https://apps.facebook.com/mgatlandtestapp?app_data=yourDataHere 形式的 url,然后在服务器端获取发送到服务器的签名请求,它将包含一个 app_data 字段。

但是,当我这样做时,签名的请求不包含 app_data 字段。

阅读更多内容后,我认为 app_data 仅适用于将应用加载到 facebook 页面选项卡而不是 facebook 画布页面中的情况。

【问题讨论】:

    标签: javascript facebook-canvas


    【解决方案1】:

    Facebook 向您的应用发送初始 POST,其中包括 url 参数。您可以从该 POST 请求中访问 url 参数。

    我使用这个 url 来加载页面:

    https://apps.facebook.com/mgatlandtest/?level=emeraldhillzone

    我在我的 node.js 服务器应用程序中使用此代码来处理请求

    app.post('/*', function(request, response) {
      console.log('url parameters:');
      console.log(request.query);
      response.redirect('/');
    });
    

    节点控制台的输出是:

    网址参数:
    { 级别:'翡翠丘陵地带' }

    然后您可以使用参数重定向到不同的页面。


    这实际上非常简单,一旦我克服了所有令人分心的错误信息。关键是搜索“深度链接”(而不是“url 参数”),这带来了this answer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多