package mainimport ( "fmt" "github.com/amarnathcjd/gogram/telegram")func main() { // Create a new Telegram client client, _ := telegram.NewClient(telegram.ClientConfig{ AppID: 6, AppHash: "YOUR_APP_HASH", }) // Login with your phone number (user account) client.Login("+1234567890") // Get all admin members from a chat // Use negative chat ID for groups/channels (e.g., -100123456789) members, count, _ := client.GetChatMembers(-100123456789, &telegram.ParticipantOptions{ Filter: &telegram.ChannelParticipantsAdmins{}, // Filter for admins only }) // Alternative: Use IterChatMembers() for yielding members one by one // Useful for large groups to avoid loading all members into memory // Print total admin count fmt.Printf("Total Admins: %d\n", count) // Iterate through each admin member for _, m := range members { fmt.Printf("Admin: %s (ID: %d)\n", m.User.FirstName, m.User.ID) } // Keep the client running client.Idle()}
Use different filters to get specific member types:
All Members
Admins Only
Bots Only
Kicked Members
Search by Name
members, count, _ := client.GetChatMembers(chatID, &telegram.ParticipantOptions{ Filter: &telegram.ChannelParticipantsRecent{}, // Recent members Limit: 100, // Maximum members to fetch (default: 200)})fmt.Printf("Total Members: %d\n", count)for _, m := range members { fmt.Printf("%s (@%s)\n", m.User.FirstName, m.User.Username)}
admins, count, _ := client.GetChatMembers(chatID, &telegram.ParticipantOptions{ Filter: &telegram.ChannelParticipantsAdmins{},})for _, admin := range admins { // Check admin rights if admin.Participant != nil { fmt.Printf("Admin: %s\n", admin.User.FirstName) }}
kicked, count, _ := client.GetChatMembers(chatID, &telegram.ParticipantOptions{ Filter: &telegram.ChannelParticipantsKicked{},})for _, user := range kicked { fmt.Printf("Kicked: %s (ID: %d)\n", user.User.FirstName, user.User.ID)}
results, count, _ := client.GetChatMembers(chatID, &telegram.ParticipantOptions{ Query: "John", // Search for members with "John" in their name Limit: 50,})fmt.Printf("Found %d users matching 'John'\n", count)