对于抖音开放平台推送过来的 Webhook 事件,本库封装了直接解析成事件模型的扩展方法,下面给出一个示例:
/* 以 authorize 事件为例 */
string webhookJson = "{ ... }";
var webhookModel = client.DeserializeEvent<Events.AuthorizeEvent>(webhookJson);
完整的 Webhook 模型定义可以参考项目目录下的 src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Events 目录。
由于抖音开放平台会将全部事件推送到同一个 Webhook 地址上,开发者需要根据事件类型才能决定如何反序列化。
这里给出一种解决方案:
DouyinOpenEvent eventModel = client.DeserializeEvent(webhookJson);
string eventType = eventModel.Event?.ToLower();
switch (eventType)
{
case "authorize":
{
var webhookModel = client.DeserializeEvent<Events.AuthorizeEvent>(webhookJson);
}
break;
// 省略其他情况
}