Facebook画布网址与params?

时间:2012-04-25 07:08:13

标签: facebook facebook-graph-api

我有一个网站,我使用Facebook API让用户邀请他们的朋友加入我的网站。这些朋友将在他们的Facebook上获得App邀请,一旦他们点击并接受它,它就会在iFrame(Facebook内)中打开我的网站页面。

这一切都很好,但我想在URL中添加一个引用ID。所以我可以告诉他们谁收到邀请。

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

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

(我正在使用JS库)。

3 个答案:

答案 0 :(得分:3)

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

如果您使用邀请的apprequests,则无法操纵请求网址,因此不确定您打算如何操作请求网址。这是一个墙贴机制吗?

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

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

答案 1 :(得分:1)

传递到您的应用网址的单个参数会传递到iframe

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

答案 2 :(得分:0)

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

返回的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) )