2017-03-08 5 views
4

Ich habe ein Programm, entwickelt von Tlsharp und ich möchte Verbindungskanal, die ich seine channel_id haben, aber für die Kanäle Verbindungs ​​Ich brauche channel_id und access_hash für TLRequestJoinChannel Anfrage.Wie bekomme ich die access_hash von channel_id im Telegramm mit Tlsharp und C#?

Also muss ich access_hash von channel_id bekommen.

Kann mir jemand helfen, dieses Problem zu lösen?

+0

Sie eine Lösung finden? – MohaMad

+0

Leider keine –

Antwort

-1
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; 
+0

Während dieses Code-Snippet die Frage lösen kann, [hilft eine Erklärung] (// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) wirklich, um die Qualität Ihres Beitrags zu verbessern . Denken Sie daran, dass Sie die Frage für Leser in der Zukunft beantworten, und diese Leute könnten die Gründe für Ihren Codevorschlag nicht kennen. Bitte versuchen Sie auch nicht, Ihren Code mit erklärenden Kommentaren zu füllen, dies reduziert die Lesbarkeit sowohl des Codes als auch der Erklärungen! – kayess

+0

Hallo Amirhossein und danke für deine Antwort aber wie ich in Frage beschreibe ich habe gerade eine channel_id und ich habe keinen Kanal Name übrigens wäre es hilfreich wenn du beschreibst was chatsingle in deinem Code ist ??? –

0

dieser Code funktioniert 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) 
      { 

      } 
+0

Ihr Code funktioniert mit dem Benutzernamen des Kanals, aber ich habe nur channel_id. Sie wissen, dass ich Kanäle beitreten möchte, dass ihre Nachricht zu bestimmten Kanal weitergeleitet. und in dieser Situation habe ich nur Integer-Variable, dass es channel_id ist. Danke für deine Antwort. : - / –

Verwandte Themen