从 sgcWebSockets 2022.3.0 开始,支持赞助消息。赞助消息需要 Telegram 1.8.0+,因此 Telegram 库已更新以支持此功能。
Telegram 上的赞助消息显示在拥有 1000+ 订阅者的大型公开一对多频道中,且限制为 160 个字符。赞助消息完全基于其显示的公开频道的话题。
这意味着不会挖掘或分析任何用户数据来显示广告,查看 Telegram 特定频道的每个用户都会看到相同的赞助消息。
获取赞助消息
每次用户打开频道时,必须调用 channels.getSponsoredMessages 来接收该频道可用的赞助消息。结果必须缓存 5 分钟。
显示赞助消息
赞助消息必须显示在频道中所有其他帖子的下方,即用户继续向下滚动超过最后一条消息后。在 from_id 字段中指定的推广频道或机器人必须显示为消息的作者。消息底部还应包含以下按钮之一:
- 查看机器人 — 如果正在推广机器人。点击按钮必须打开与机器人的聊天。如果指定了
start_param,应用必须使用深度链接机制打开机器人。 - 查看频道 — 如果正在推广频道。点击按钮必须打开该频道。
- 查看帖子 — 如果正在推广频道且指定了
channel_post。点击按钮必须打开该特定频道帖子。
示例
以下是使用 sgcWebSockets 库请求和显示赞助消息的示例。
//向频道发送请求,询问是否有可用的赞助消息,只需调用 GetChatSponsoredMessage 方法。
oTelegram := TsgcTDLib_Telegram.Create(nil);
oTelegram.Telegram.API.ApiHash := 'ABCDEFGHIJKLMN';
oTelegram.Telegram.API.ApiId := '1234';
oTelegram.PhoneNumber := '008745744155';
oTelegram.Active := true;
oTelegram.getChatSponsoredMessage('100');
//如果聊天有赞助消息,则会调用 OnMessageSponsored 事件,并传入赞助消息的内容。
//如果没有消息,则返回 404 错误。
procedure(Sender: TObject; MessageSponsored: TsgcTelegramMessageSponsored);
begin
DoLog(MessageSponsored.Text);
end;
//在向用户显示赞助消息后,调用 ViewMessage 方法。
oTelegram.ViewMessage('100', '54653256245');
