从Facebook回发响应获取参考参数

时间:2019-11-03 20:25:16

标签: facebook-graph-api

目标-将我的网站链接到我的机器人。

我正在尝试添加一个链接,该链接使用FB m.me链接here将用户发送到我的机器人。我有一个使用get_started请求的POST按钮,就像这样:

curl -X POST -H "Content-Type: application/json" -d '{
  "get_started": {"payload": "get_started"}
}' "https://graph.facebook.com/v2.6/me/messenger_profile?access_token=<PAGE_ACCESS_TOKEN>"

当用户(我)点击“获得加注星标”按钮时,响应中将不包含文档所认为的任何引用参数。 这是返回的响应数据:

 { 
  sender: { id: '1111' },
  recipient: { id: '2222' },
  timestamp: 1572811674525,
  postback: { title: 'Get Started', payload: 'get_started' } 
 }

它应该是这样的:

{
  "sender":{
    "id":"<PSID>"
  },
  "recipient":{
    "id":"<PAGE_ID>"
  },
  "timestamp":1458692752478,
  "postback":{
    "payload":"<USER_DEFINED_PAYLOAD>",
    "referral": {
      "ref": "ref_data_in_m_dot_me_param",
      "source": "SHORTLINK",
      "type": "OPEN_THREAD",
    }
  }
}

ref参数在哪里?我在做什么错了?

可能性?:我无法让任何测试用户正常工作,所以我是唯一的用户。由于我是管理员,不确定是否未发送ref参数?

1 个答案:

答案 0 :(得分:0)

再次阅读文档的重要性,我意识到这些ref参数不是必需的,实际上它们是通过用户 me 的请求传递的。它们不是自动生成的,我认为是因为:

  

我们将传递的ref参数作为回发事件的一部分

它们也不必完成链接过程。

要使响应像我在上面发布的那样显示,这是HTML,要放置在a标记或等效标记中,参考在此处等于test

http://m.me/<PAGE_NAME>?ref=test

然后,该请求在回发后返回并带有引用:

referral: { source: 'SHORTLINK', type: 'OPEN_THREAD', ref: 'test' }