【问题标题】:Facebook canvas url with params?带有参数的Facebook画布网址?
【发布时间】:2014-03-15 06:14:02
【问题描述】:

我有一个网站,我在其中使用 Facebook API 让用户“邀请”他们的朋友到我的网站。这些朋友会在他们的 Facebook 上收到一个应用邀请,一旦他们点击并接受它,它就会在 iFrame(在 Facebook 内)中打开我网站的一个页面。

没关系,但我想在 URL 中添加一个引用 ID。所以我可以知道他们是从谁那里得到邀请的。

是否可以向画布 URL 添加(动态)参数??

我无法找到如何做到这一点。

(我使用的是 JS 库)。

【问题讨论】:

    标签: facebook facebook-graph-api


    【解决方案1】:

    我可以将多个参数传递给我的画布页面。不太清楚为什么这对您或@JonCanning 不起作用。我能够成功重定向到https://apps.facebook.com/MY-APP?param1=x&param2=y&param3=z 并在 iframe 中加载的代码中检索它们。

    但是,如果您使用 apprequests 进行邀请,则无法操纵请求 url,因此不确定您打算如何操纵请求 url。这是墙贴机制吗?

    但是,如果您使用 apprequests 进行邀请 - 您可以传递一个可选的“数据”参数。这可以是任意 JSON 或简单字符串。当收件人通过邀请单击时,您将在 Facebook 的请求重定向器中获得一个“request_id”参数。例如http:YOUR-INVITE-REDIRECT-URL?request_ids=REQUEST_ID。如果来自同一应用程序的多个邀请被发送给用户,您将获得 request_ids 作为逗号分隔的列表。您可以为请求调用 facebook graph api 端点并取回请求的所有信息 - 包括您传递的“数据”参数。这可能更适合您,因为您已将所有数据嵌入到请求本身中。

    更多关于对话框的信息:https://developers.facebook.com/docs/reference/dialogs/requests/

    【讨论】:

      【解决方案2】:

      传递到您的应用程序 url 的单个参数被传递到 iframe

      http://apps.facebook.com/app_name/?param=hello

      【讨论】:

      • 你有这方面的文件吗? Facebook 似乎没有传递参数。
      • 不,只是通过我自己的测试,它似乎只适用于单个参数,所以我会修改我的答案
      • 顺便说一句 app_data 获取参数这样做
      【解决方案3】:

      要添加到@iyerrag 的答案,要从画布处理程序中获取数据参数,您必须回调到 facebook 图形 API。该调用采用 http 查询中传递的 request_id 之一以及访问令牌。我能够使用我们应用的访问令牌(生成类似 Creating App Token 的东西)。

      返回的 JSON 文档包含您在键 'data' 中的数据参数中传递的值。

      这是要点,用 Python 编写:

      requestIDStr = self.request.get('request_ids','')
      requestIDs = requestIDStr.split(',')
      requestID = requestIDs[0]
      
      if requestID:
         url = """https://graph.facebook.com/{}?access_token={}""".format(requestID, fbAccessToken)
         try:
            response = urllib2.urlopen(url)
            responseDoc = response.read()
            jsonResponse = json.loads(responseDoc)
            dataParam = jsonResponse['data']
         except Exception as e: logging.warning('unable to retrieve data param: {}'.format(e) )
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-17
        • 2015-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-04
        • 1970-01-01
        相关资源
        最近更新 更多