我有Tlsharp开发了一个程序,我想连接通道,我有它的CHANNEL_ID,但对于加盟渠道,我需要CHANNEL_ID和TLRequestJoinChannel
要求access_hash。如何使用Tlsharp和c#从电报中的channel_id获取access_hash?
所以我需要得到access_hash从channel_id。
有人能帮我解决这个问题吗?
我有Tlsharp开发了一个程序,我想连接通道,我有它的CHANNEL_ID,但对于加盟渠道,我需要CHANNEL_ID和TLRequestJoinChannel
要求access_hash。如何使用Tlsharp和c#从电报中的channel_id获取access_hash?
所以我需要得到access_hash从channel_id。
有人能帮我解决这个问题吗?
var dialogs = (TLDialogs) await client.GetUserDialogsAsync();
var channel = dialogs.chats.lists
.OfType<TLChannel>()
.FirstOrDefault(c => c.title == "channelName");
long access_hash = (long) channel.access_hash;
虽然这段代码可以解决这个问题,但是[包括解释](// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)确实有助于提高你的帖子的质量。请记住,您将来会为读者回答问题,而这些人可能不知道您的代码建议的原因。也请尽量不要用解释性注释来挤占代码,这会降低代码和解释的可读性! – kayess
嗨Amirhossein和谢谢你的回答,但正如我描述的问题,我只是有一个channel_id,我没有渠道名称 顺便说一句,如果你描述什么是你的代码中的chatsingle? –
此代码的工作100%:-)
var channelInfo = (await client.SendRequestAsync<TeleSharp.TL.Contacts.TLResolvedPeer>(
new TeleSharp.TL.Contacts.TLRequestResolveUsername
{
username = "ChannelID"
}).ConfigureAwait(false)).chats.lists[0] as TeleSharp.TL.TLChannel;
var Request = new TeleSharp.TL.Channels.TLRequestJoinChannel()
{
channel = new TLInputChannel
{
channel_id = channelInfo.id,
access_hash = (long) channelInfo.access_hash
}
};
try
{
var Respons = await client.SendRequestAsync<Boolean>(Request);
}
catch (exception ex)
{
}
你的代码和频道的用户名一起工作,但我只有channel_id。你知道我想加入他们的消息转发到特定频道的频道。在这种情况下,我只有整数变量,它是channel_id。感谢您的回答。 : - / –
你有没有找到任何解决办法? – MohaMad
不幸的是没有 –