
# facebook回调接口
#### 接口功能
渠道配置完成后生成回调接口，facebook配置该接口验证回调，与ccmessaging对接。
#### 使用说明
- 前提条件
  - facebook渠道创建成功
  
  - 详见官方文档：https://developers.facebook.com/
   
 
#### 接口鉴权
将渠道配置里的verifyCode与请求参数中的hub.verify_token进行比较，相同既鉴权通过。
#### 接口原型
表1接口原型说明 
|   请求方法    |                                                                                                  GET                                                                                                  ||
|---|---|---|
| **请求URL** | https://ip:port/social/on/facebook/{channelId} | 其中，ip:port为对外暴露的nslb的ip和port， channelId为渠道id |
   
#### 请求参数
表2请求Headers参数说明 
| 参数名称            | 选取原则 | 参数类型   | 说明                                                       |
|:---|:---|:---|:---|
| Content-Type    | 必选   | String | 固定：application/json;charset=UTF-8。                       |
| user-agent      | 必选   | String | 例：facebookplatform/1.0 (+http://developers.facebook.com) |
| accept-encoding | 必选   | String | 例：deflate, gzip                                          |
   
表3请求Body中request参数说明 
| 参数名称             | 选取原则 | 参数类型   | 说明                |
|:---|:---|:---|:---|
| hub.mode         | 必选   | String | 必须是subscribe      |
| hub.verify_token | 必选   | String | facebook携带的验证信息   |
| hub.challenge    | 必选   | String | 校验成功后response响应内容 |
   
#### 响应参数
当调用本接口响应成功，response 无响应内容。
当调用本接口响应失败，则返回相应的状态码或者错误描述信息。
#### 接口示例
- 请求示例
  ```
  GET https://10.10.10.1/social/on/facebook/202106178632962090
  host : 10.10.10.2:28090
  connection : Keep-Alive
  x-forwarded-for : 10.10.10.3, 10.10.10.4
  x-real-ip : 10.10.10.5
  remote-host : 10.10.10.6
  accept : */*
  accept-encoding : deflate, gzip
  user-agent : facebookplatform/1.0 (+http://developers.facebook.com)
  {
      "hub.mode": "subscribe",
      "msgBody": "*********************",
      "hub.challenge": ""
  }
  ```
  
- 响应示例
  ```
  Status Code: 400
  response: "The token sent by facebook is not correct."
  ```
  
 
