Facebook Messenger 平台发送 API 意外内部错误

标签 facebook facebook-messenger facebook-send-api

我正在开发 Facebook Messenger Platform Send API 框架,但在尝试创建航空公司行程模板 ( https://developers.facebook.com/docs/messenger-platform/send-api-reference/airline-itinerary-template ) 时遇到此错误:

{
 "error": {
   "message": "(#-1) Send API unexpected internal error",
   "type": "OAuthException",
   "code": -1,
   "fbtrace_id": "DBWbw/pHJGv"
 }
}

这是触发它的请求:

{  
   "message":{  
      "attachment":{  
         "type":"template",
         "payload":{  
            "flight_info":[  
               {  
                  "connection_id":"123",
                  "segment_id":"123",
                  "aircraft_type":"Boeing",
                  "travel_class":"business",
                  "flight_number":"123",
                  "departure_airport":{  
                     "airport_code":"CT",
                     "city":"Catania",
                     "terminal":"F",
                     "gate":"54"
                  },
                  "arrival_airport":{  
                     "airport_code":"BG",
                     "city":"Bergamo",
                     "terminal":"C",
                     "gate":"12"
                  },
                  "flight_schedule":{  
                     "boarding_time":"2016-8-25T15:8",
                     "departure_time":"2016-8-25T15:8",
                     "arrival_time":"2016-8-25T15:8"
                  }
               }
            ],
            "passenger_info":[  
               {  
                  "passenger_id":"1",
                  "ticket_number":"215",
                  "name":"Sarah Hum"
               },
               {  
                  "passenger_id":"2",
                  "name":"Jeremy Goldberg"
               }
            ],
            "passenger_segment_info":[  
               {  
                  "segment_id":"241",
                  "passenger_id":"251",
                  "seat":"14A",
                  "seat_type":"Economy",
                  "product_info":[  
                     {  
                        "title":"Cabin",
                        "value":"Coach"
                     }
                  ]
               }
            ],
            "price_info":[  
               {  
                  "title":"Cabin",
                  "amount":100.0,
                  "currency":"USD"
               },
               {  
                  "title":"Ticket",
                  "amount":200.0
               }
            ],
            "base_price":200.71,
            "tax":200.0,
            "total_price":4032.54,
            "currency":"USD",
            "pnr_number":"D0FQTK",
            "intro_message":"Here\u0027s your itinerary",
            "locale":"en_US",
            "template_type":"airline_itinerary"
         }
      }
   },
   "recipient":{  
      "id":"************"
   }
}

在此网址:https://graph.facebook.com/v2.7/me/messages?access_token= ******

我仅在使用此特定模板时遇到此问题。另一个工作得很好。有谁知道可能是什么原因造成的?

谢谢。

最佳答案

我在您的消息 json 中看到以下问题。

  1. flight_info部分中的segment_id与passenger_segment_info部分中的segment_id不匹配
  2. passenger_id 字段也存在同样的问题。
  3. 登机、到达和出发日期格式错误。如果月、日、小时或分钟是个位数,则需要在前面加上 0。

我对上述修复进行了测试,效果很好。这是更新后的示例。

{
     "attachment":{  
     "type":"template",
     "payload":{  
        "flight_info":[  
           {  
              "connection_id":"123",
              "segment_id":"241",
              "aircraft_type":"Boeing",
              "travel_class":"business",
              "flight_number":"123",
              "departure_airport":{  
                 "airport_code":"CT",
                 "city":"Catania",
                 "terminal":"F",
                 "gate":"54"
              },
              "arrival_airport":{  
                 "airport_code":"BG",
                 "city":"Bergamo",
                 "terminal":"C",
                 "gate":"12"
              },
              "flight_schedule":{  
                 "boarding_time":"2016-08-25T15:08",
                 "departure_time":"2016-08-25T15:08",
                 "arrival_time":"2016-08-25T15:08"
              }
           }
        ],
        "passenger_info":[  
           {  
              "passenger_id":"1",
              "ticket_number":"215",
              "name":"Sarah Hum"
           },
           {  
              "passenger_id":"2",
              "name":"Jeremy Goldberg"
           }
        ],
        "passenger_segment_info":[  
           {  
              "segment_id":"241",
              "passenger_id":"1",
              "seat":"14A",
              "seat_type":"Economy",
              "product_info":[  
                 {  
                    "title":"Cabin",
                    "value":"Coach"
                 }
              ]
           }
        ],
        "price_info":[  
           {  
              "title":"Cabin",
              "amount":100.0,
              "currency":"USD"
           },
           {  
              "title":"Ticket",
              "amount":200.0
           }
        ],
        "base_price":200.71,
        "tax":200.0,
        "total_price":4032.54,
        "currency":"USD",
        "pnr_number":"D0FQTK",
        "intro_message":"Here\u0027s your itinerary",
        "locale":"en_US",
        "template_type":"airline_itinerary"
     }
  }
},

我希望 Facebook 有一天能够更新文档,提供有关这些限制的详细信息。请在此处分享您的错误票链接,以便我们可以订阅它。

关于Facebook Messenger 平台发送 API 意外内部错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39146709/

相关文章:

javascript - 如何从iframe中获取浏览器当前页面的URL?

c# - 不能在FB post发图片,这个status update好像是空白。请写一些东西或附上链接或照片以更新您的状态

facebook-messenger - Facebook Messenger 机器人不发布到 webhook

facebook - Messenger 平台限制错误 (#613) 对该 api 的调用已超过速率限制

bots - Facebook 信使平台 : generic template with quick replies

php - 如何从 url 获取 Facebook 页面用户名或 facebook 页面 ID

facebook - 如何将 http 代码转换为 https?

node.js - 将 "quick replies"附加到受支持 channel 上的每条消息 - NodeJS 机器人

ios - Facebook Messenger 平台仅在桌面上发送 Bot 欢迎消息