4

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

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

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

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

(我正在使用 JS 库)。

4

3 回答 3

3

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

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

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

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

于 2012-05-30T15:23:00.717 回答
1

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

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

于 2012-05-04T08:16:40.653 回答
0

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

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

这是 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) )
于 2014-03-14T21:49:26.577 回答