From 348df3d996b19386771b6521e654a4c8b53526a3 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Mon, 29 Apr 2024 22:16:50 +0800 Subject: [PATCH] =?UTF-8?q?feat(wxapi):=20=E6=96=B0=E5=A2=9E=E8=A7=86?= =?UTF-8?q?=E9=A2=91=E5=8F=B7=E5=8A=A9=E6=89=8B=E7=95=99=E8=B5=84=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E7=9B=B4=E6=92=AD=E6=95=B0=E6=8D=AE=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...echatApiClientExecuteChannelsExtensions.cs | 71 +++++++++++ ...derLiveGetFinderAttributeByAppIdRequest.cs | 9 ++ ...erLiveGetFinderAttributeByAppIdResponse.cs | 42 +++++++ ...FinderLiveGetFinderLeadsDataListRequest.cs | 29 +++++ ...inderLiveGetFinderLeadsDataListResponse.cs | 42 +++++++ ...sFinderLiveGetFinderLiveDataListRequest.cs | 29 +++++ ...FinderLiveGetFinderLiveDataListResponse.cs | 112 ++++++++++++++++++ ...LiveGetFinderAttributeByAppIdResponse.json | 9 ++ ...nderLiveGetFinderLeadsDataListRequest.json | 6 + ...derLiveGetFinderLeadsDataListResponse.json | 36 ++++++ ...inderLiveGetFinderLiveDataListRequest.json | 5 + ...nderLiveGetFinderLiveDataListResponse.json | 21 ++++ 12 files changed, 411 insertions(+) create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/FinderLive/ChannelsFinderLiveGetFinderAttributeByAppIdRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/FinderLive/ChannelsFinderLiveGetFinderAttributeByAppIdResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/FinderLive/ChannelsFinderLiveGetFinderLeadsDataListRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/FinderLive/ChannelsFinderLiveGetFinderLeadsDataListResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/FinderLive/ChannelsFinderLiveGetFinderLiveDataListRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/FinderLive/ChannelsFinderLiveGetFinderLiveDataListResponse.cs create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/FinderLive/ChannelsFinderLiveGetFinderAttributeByAppIdResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/FinderLive/ChannelsFinderLiveGetFinderLeadsDataListRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/FinderLive/ChannelsFinderLiveGetFinderLeadsDataListResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/FinderLive/ChannelsFinderLiveGetFinderLiveDataListRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/FinderLive/ChannelsFinderLiveGetFinderLiveDataListResponse.json diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs index de5ca051..57b134fe 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs @@ -4039,6 +4039,77 @@ namespace SKIT.FlurlHttpClient.Wechat.Api } #endregion + #region FinderLive + /// + /// 异步调用 [POST] /channels/finderlive/get_finder_attr_by_appid 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteChannelsFinderLiveGetFinderAttributeByAppIdAsync(this WechatApiClient client, Models.ChannelsFinderLiveGetFinderAttributeByAppIdRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateFlurlRequest(request, HttpMethod.Post, "channels", "finderlive", "get_finder_attr_by_appid") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [POST] /channels/finderlive/get_finder_live_data_list 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteChannelsFinderLiveGetFinderLiveDataListAsync(this WechatApiClient client, Models.ChannelsFinderLiveGetFinderLiveDataListRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateFlurlRequest(request, HttpMethod.Post, "channels", "finderlive", "get_finder_live_data_list") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [POST] /channels/finderlive/get_finder_live_leads_data 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteChannelsFinderLiveGetFinderLeadsDataListAsync(this WechatApiClient client, Models.ChannelsFinderLiveGetFinderLeadsDataListRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateFlurlRequest(request, HttpMethod.Post, "channels", "finderlive", "get_finder_live_leads_data") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + #endregion + #region Leads /// /// 异步调用 [POST] /channels/leads/get_leads_info_by_component_id 接口。 diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/FinderLive/ChannelsFinderLiveGetFinderAttributeByAppIdRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/FinderLive/ChannelsFinderLiveGetFinderAttributeByAppIdRequest.cs new file mode 100644 index 00000000..8cdf6ba4 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/FinderLive/ChannelsFinderLiveGetFinderAttributeByAppIdRequest.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/finderlive/get_finder_attr_by_appid 接口的请求。 + /// + public class ChannelsFinderLiveGetFinderAttributeByAppIdRequest : WechatApiRequest, IInferable + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/FinderLive/ChannelsFinderLiveGetFinderAttributeByAppIdResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/FinderLive/ChannelsFinderLiveGetFinderAttributeByAppIdResponse.cs new file mode 100644 index 00000000..afee11d0 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/FinderLive/ChannelsFinderLiveGetFinderAttributeByAppIdResponse.cs @@ -0,0 +1,42 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/finderlive/get_finder_attr_by_appid 接口的响应。 + /// + public class ChannelsFinderLiveGetFinderAttributeByAppIdResponse : WechatApiResponse + { + public static class Types + { + public class FinderAttribute + { + /// + /// 获取或设置视频号唯一标识。 + /// + [Newtonsoft.Json.JsonProperty("uniq_id")] + [System.Text.Json.Serialization.JsonPropertyName("uniq_id")] + public string UniqueId { get; set; } = default!; + + /// + /// 获取或设置视频号昵称。 + /// + [Newtonsoft.Json.JsonProperty("nickname")] + [System.Text.Json.Serialization.JsonPropertyName("nickname")] + public string NickName { get; set; } = default!; + + /// + /// 获取或设置粉丝数。 + /// + [Newtonsoft.Json.JsonProperty("fans_count")] + [System.Text.Json.Serialization.JsonPropertyName("fans_count")] + public int FansCount { get; set; } + } + } + + /// + /// 获取或设置视频号信息。 + /// + [Newtonsoft.Json.JsonProperty("finder_attr")] + [System.Text.Json.Serialization.JsonPropertyName("finder_attr")] + public Types.FinderAttribute FinderAttribute { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/FinderLive/ChannelsFinderLiveGetFinderLeadsDataListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/FinderLive/ChannelsFinderLiveGetFinderLeadsDataListRequest.cs new file mode 100644 index 00000000..3829e2af --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/FinderLive/ChannelsFinderLiveGetFinderLeadsDataListRequest.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/finderlive/get_finder_live_leads_data 接口的请求。 + /// + public class ChannelsFinderLiveGetFinderLeadsDataListRequest : WechatApiRequest, IInferable + { + /// + /// 获取或设置查询范围的开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("start_time")] + [System.Text.Json.Serialization.JsonPropertyName("start_time")] + public long? StartTimestamp { get; set; } + + /// + /// 获取或设置查询范围的结束时间戳。 + /// + [Newtonsoft.Json.JsonProperty("end_time")] + [System.Text.Json.Serialization.JsonPropertyName("end_time")] + public long? EndTimestamp { get; set; } + + /// + /// 获取或设置来源类型。 + /// + [Newtonsoft.Json.JsonProperty("source_type")] + [System.Text.Json.Serialization.JsonPropertyName("source_type")] + public int? SourceType { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/FinderLive/ChannelsFinderLiveGetFinderLeadsDataListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/FinderLive/ChannelsFinderLiveGetFinderLeadsDataListResponse.cs new file mode 100644 index 00000000..482ac223 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/FinderLive/ChannelsFinderLiveGetFinderLeadsDataListResponse.cs @@ -0,0 +1,42 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/finderlive/get_finder_live_leads_data 接口的响应。 + /// + public class ChannelsFinderLiveGetFinderLeadsDataListResponse : WechatApiResponse + { + public static class Types + { + public class LeadsData + { + /// + /// 获取或设置组件类型。 + /// + [Newtonsoft.Json.JsonProperty("component_type")] + [System.Text.Json.Serialization.JsonPropertyName("component_type")] + public int ComponentType { get; set; } + + /// + /// 获取或设置流量来源。 + /// + [Newtonsoft.Json.JsonProperty("traffic_type")] + [System.Text.Json.Serialization.JsonPropertyName("traffic_type")] + public int TrafficType { get; set; } + + /// + /// 获取或设置留资条数。 + /// + [Newtonsoft.Json.JsonProperty("leads_count")] + [System.Text.Json.Serialization.JsonPropertyName("leads_count")] + public int LeadsCount { get; set; } + } + } + + /// + /// 获取或设置留资数据列表。 + /// + [Newtonsoft.Json.JsonProperty("item")] + [System.Text.Json.Serialization.JsonPropertyName("item")] + public Types.LeadsData[] LeadsDataList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/FinderLive/ChannelsFinderLiveGetFinderLiveDataListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/FinderLive/ChannelsFinderLiveGetFinderLiveDataListRequest.cs new file mode 100644 index 00000000..78daed6b --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/FinderLive/ChannelsFinderLiveGetFinderLiveDataListRequest.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/finderlive/get_finder_live_data_list 接口的请求。 + /// + public class ChannelsFinderLiveGetFinderLiveDataListRequest : WechatApiRequest, IInferable + { + /// + /// 获取或设置查询范围的开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("start_time")] + [System.Text.Json.Serialization.JsonPropertyName("start_time")] + public long? StartTimestamp { get; set; } + + /// + /// 获取或设置查询范围的结束时间戳。 + /// + [Newtonsoft.Json.JsonProperty("end_time")] + [System.Text.Json.Serialization.JsonPropertyName("end_time")] + public long? EndTimestamp { get; set; } + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("last_buffer")] + [System.Text.Json.Serialization.JsonPropertyName("last_buffer")] + public string? Cursor { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/FinderLive/ChannelsFinderLiveGetFinderLiveDataListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/FinderLive/ChannelsFinderLiveGetFinderLiveDataListResponse.cs new file mode 100644 index 00000000..e2ae3e37 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/FinderLive/ChannelsFinderLiveGetFinderLiveDataListResponse.cs @@ -0,0 +1,112 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/finderlive/get_finder_live_data_list 接口的响应。 + /// + public class ChannelsFinderLiveGetFinderLiveDataListResponse : WechatApiResponse + { + public static class Types + { + public class LiveData + { + /// + /// 获取或设置直播唯一 ID。 + /// + [Newtonsoft.Json.JsonProperty("export_id")] + [System.Text.Json.Serialization.JsonPropertyName("export_id")] + public string ExportId { get; set; } = default!; + + /// + /// 获取或设置开播时间戳。 + /// + [Newtonsoft.Json.JsonProperty("live_start_time")] + [System.Text.Json.Serialization.JsonPropertyName("live_start_time")] + public long LiveStartTimestamp { get; set; } + + /// + /// 获取或设置直播时长(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("live_duration_in_seconds")] + [System.Text.Json.Serialization.JsonPropertyName("live_duration_in_seconds")] + public int LiveDuration { get; set; } + + /// + /// 获取或设置观看人数。 + /// + [Newtonsoft.Json.JsonProperty("total_audience_count")] + [System.Text.Json.Serialization.JsonPropertyName("total_audience_count")] + public int TotalAudienceCount { get; set; } + + /// + /// 获取或设置喝彩次数。 + /// + [Newtonsoft.Json.JsonProperty("total_cheer_count")] + [System.Text.Json.Serialization.JsonPropertyName("total_cheer_count")] + public int TotalCheerCount { get; set; } + + /// + /// 获取或设置分享次数。 + /// + [Newtonsoft.Json.JsonProperty("forward_count")] + [System.Text.Json.Serialization.JsonPropertyName("forward_count")] + public int ForwardCount { get; set; } + + /// + /// 获取或设置评论条数。 + /// + [Newtonsoft.Json.JsonProperty("total_comment_count")] + [System.Text.Json.Serialization.JsonPropertyName("total_comment_count")] + public int CommentCount { get; set; } + + /// + /// 获取或设置人均观看时长(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("audiences_avg_seconds")] + [System.Text.Json.Serialization.JsonPropertyName("audiences_avg_seconds")] + public int AudiencesAverageSeconds { get; set; } + + /// + /// 获取或设置最高在线人数。 + /// + [Newtonsoft.Json.JsonProperty("max_online_count")] + [System.Text.Json.Serialization.JsonPropertyName("max_online_count")] + public int MaxOnlineCount { get; set; } + + /// + /// 获取或设置新增粉丝数。 + /// + [Newtonsoft.Json.JsonProperty("new_follow_count")] + [System.Text.Json.Serialization.JsonPropertyName("new_follow_count")] + public int NewFollowCount { get; set; } + + /// + /// 获取或设置公众号新增粉丝数。 + /// + [Newtonsoft.Json.JsonProperty("new_follow_count_biz")] + [System.Text.Json.Serialization.JsonPropertyName("new_follow_count_biz")] + public int NewFollowBusinessCount { get; set; } + } + } + + /// + /// 获取或设置直播数据列表。 + /// + [Newtonsoft.Json.JsonProperty("item")] + [System.Text.Json.Serialization.JsonPropertyName("item")] + public Types.LiveData[] LiveDataList { get; set; } = default!; + + /// + /// 获取或设置是否还有更多。 + /// + [Newtonsoft.Json.JsonProperty("continue_flag")] + [System.Text.Json.Serialization.JsonPropertyName("continue_flag")] + public bool HasMore { get; set; } + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("last_buffer")] + [System.Text.Json.Serialization.JsonPropertyName("last_buffer")] + public string? NextCursor { get; set; } + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/FinderLive/ChannelsFinderLiveGetFinderAttributeByAppIdResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/FinderLive/ChannelsFinderLiveGetFinderAttributeByAppIdResponse.json new file mode 100644 index 00000000..bd6af6f9 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/FinderLive/ChannelsFinderLiveGetFinderAttributeByAppIdResponse.json @@ -0,0 +1,9 @@ +{ + "errcode": 0, + "errmsg": "ok", + "finder_attr": { + "uniq_id": "sphxxxx", + "nickname": "xxxx", + "fans_count": 4 + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/FinderLive/ChannelsFinderLiveGetFinderLeadsDataListRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/FinderLive/ChannelsFinderLiveGetFinderLeadsDataListRequest.json new file mode 100644 index 00000000..e9593d07 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/FinderLive/ChannelsFinderLiveGetFinderLeadsDataListRequest.json @@ -0,0 +1,6 @@ + +{ + "start_time": 1694142436, + "end_time": 1694228836, + "source_type": 0 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/FinderLive/ChannelsFinderLiveGetFinderLeadsDataListResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/FinderLive/ChannelsFinderLiveGetFinderLeadsDataListResponse.json new file mode 100644 index 00000000..18ca908a --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/FinderLive/ChannelsFinderLiveGetFinderLeadsDataListResponse.json @@ -0,0 +1,36 @@ +{ + "errcode": 0, + "errmsg": "ok", + "item": [ + { + "component_type": 0, + "traffic_type": 0, + "leads_count": 1000 + }, + { + "component_type": 0, + "traffic_type": 1, + "leads_count": 1000 + }, + { + "component_type": 1, + "traffic_type": 0, + "leads_count": 1000 + }, + { + "component_type": 1, + "traffic_type": 1, + "leads_count": 1000 + }, + { + "component_type": 2, + "traffic_type": 0, + "leads_count": 1000 + }, + { + "component_type": 2, + "traffic_type": 1, + "leads_count": 1000 + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/FinderLive/ChannelsFinderLiveGetFinderLiveDataListRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/FinderLive/ChannelsFinderLiveGetFinderLiveDataListRequest.json new file mode 100644 index 00000000..39827ff9 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/FinderLive/ChannelsFinderLiveGetFinderLiveDataListRequest.json @@ -0,0 +1,5 @@ +{ + "start_time": 1694142436, + "end_time": 1694228836, + "last_buffer": "EB4YAg" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/FinderLive/ChannelsFinderLiveGetFinderLiveDataListResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/FinderLive/ChannelsFinderLiveGetFinderLiveDataListResponse.json new file mode 100644 index 00000000..d4cc0016 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/FinderLive/ChannelsFinderLiveGetFinderLiveDataListResponse.json @@ -0,0 +1,21 @@ +{ + "errcode": 0, + "errmsg": "ok", + "item": [ + { + "export_id": "18881222222", + "live_start_time": 1694142436, + "live_duration_in_seconds": 3600, + "total_audience_count": 10000, + "total_cheer_count": 1000000, + "forward_count": 1000, + "total_comment_count": 10000, + "audiences_avg_seconds": 600, + "max_online_count": 200, + "new_follow_count": 10, + "new_follow_count_biz": 0 + } + ], + "last_buffer": "EB4YAg=", + "continue_flag": true +}