有没有办法从Facebook上的app-scoped-id获取页面作用域ID?

时间:2017-09-27 09:46:05

标签: facebook facebook-graph-api bots passport-facebook

正如你们许多人所知,当用户登录我们的某个Facebook应用程序时,我们会获得一些数据,并且有一个仅适用于App世界的用户ID。

如果我们有,我们想要用来与用户交互的机器人,我们需要一个与该机器人相关联的页面所独有的ID。为了得到它,我一直在读这个:

https://developers.facebook.com/docs/messenger-platform/identity/customer-matching

显然,我们希望在用户登录后立即向用户发送消息,而无需事先进行交互。我们尝试使用Graph API:

<user-app-scoped-id>?fields=name,age_range,ids_for_apps,ids_for_pages&access_token=<user-access-token>

我们得到这样的东西:

{
  "name": "xxxx",
  "ids_for_apps": {
    "data": [
      {
        "id": "1006086616200000",
        "app": {
          "link": "http://public-link/",
          "name": "ChatBotTest",
          "id": "1171064089667000"            
       }
      }
    ],
    "paging": {
      "cursors": {
        "before": "MTE3MTA2NDA4OTY2NTE3",
        "after": "MTE3MTA2NDA4OTY2NTE3"
      }
    }
  },
  "ids_for_pages": {
    "data": [
      {
        "id": "1599402636786000",
        "page": {
          "name": "TuHuella",
          "id": "1931527867112000"
        }
      }
    ],
    "paging": {
      "cursors": {
        "before": "MTkzMTUyNzg2NzExMjU1MAZDZD",
        "after": "MTkzMTUyNzg2NzExMjU1MAZDZD"
      }
    }
  },
  "id": "1006086616200000"
}

最后一部分&#34; ids_for_pages&#34;只有在用户向我们的页面写了一些东西时才会出现,所以我们似乎需要这种互动。

有人知道避免这种情况的方法吗?也许我们可以通过编程方式从登录用户发送消息到我们的页面,以便我们进行这种交互?

非常感谢,

里卡多

1 个答案:

答案 0 :(得分:0)

我想我明白了。

https://developers.facebook.com/docs/messenger-platform/discovery/checkbox-plugin

请参阅此处的示例:

https://signup.pushblack.us/

就是这样。我只需要复选框Facebook插件。如果用户已经登录(肯定会是这样),那么已经选中了复选框,点击任何按钮后,我们就可以触发从我们的服务器发送的消息。

如果用户未登录,则不会选中该复选框,如果用户点击该复选框,则会提示登录框并检查复选框是否成功。