mirror of
https://github.com/wiz0u/WTelegramClient.git
synced 2026-01-20 15:30:25 +01:00
Examples: Add/Invite/Remove someone in a chat
This commit is contained in:
parent
35cd3b682e
commit
fa10998618
39
EXAMPLES.md
39
EXAMPLES.md
|
|
@ -173,6 +173,45 @@ var channel = (Channel)chats.chats[1234567890]; // the channel we want
|
|||
var participants = await client.Channels_GetAllParticipants(channel);
|
||||
```
|
||||
|
||||
<a name="add-members"></a>
|
||||
### Add/Invite/Remove someone in a chat
|
||||
```csharp
|
||||
using var client = new WTelegram.Client(Environment.GetEnvironmentVariable);
|
||||
await client.LoginUserIfNeeded();
|
||||
var chats = await client.Messages_GetAllChats(null);
|
||||
const long chatId = 1234567890; // the target chat
|
||||
var chat = chats.chats[chatId];
|
||||
```
|
||||
After the above code, once you have obtained an InputUser (or User), you can:
|
||||
```csharp
|
||||
// • Directly add the user to a simple Chat:
|
||||
await client.Messages_AddChatUser(1234567890, inputUser, int.MaxValue);
|
||||
// • Directly add the user to a Channel/group:
|
||||
await client.Channels_InviteToChannel((Channel)chat, new[] { inputUser });
|
||||
// You may get exception USER_PRIVACY_RESTRICTED if the user has denied the right to be added to a chat
|
||||
// or exception USER_NOT_MUTUAL_CONTACT if the user left the chat previously and you want to add him again
|
||||
|
||||
// • Obtain the main invite link for a simple Chat:
|
||||
var mcf = await client.Messages_GetFullChat(1234567890);
|
||||
// • Obtain the main invite link for a Channel/group:
|
||||
var mcf = await client.Channels_GetFullChannel((Channel)chat);
|
||||
// extract the invite link and send it to the user:
|
||||
var invite = (ChatInviteExported)mcf.full_chat.ExportedInvite;
|
||||
await client.SendMessageAsync(inputUser, "Join our group with this link: " + invite.link);
|
||||
|
||||
// • Create a new invite link for the chat/channel, and send it to the user
|
||||
var invite = (ChatInviteExported)await client.Messages_ExportChatInvite(chat, title: "MyLink");
|
||||
await client.SendMessageAsync(inputUser, "Join our group with this link: " + invite.link);
|
||||
// • Revoke then delete that invite link (when you no longer need it)
|
||||
await client.Messages_EditExportedChatInvite(chat, invite.link, revoked: true);
|
||||
await client.Messages_DeleteExportedChatInvite(chat, invite.link);
|
||||
|
||||
// • Remove the user from a simple Chat:
|
||||
await client.Messages_DeleteChatUser(1234567890, inputUser);
|
||||
// • Remove the user from a Channel/group:
|
||||
await client.Channels_EditBanned((Channel)chat, inputUser, new ChatBannedRights { flags = ChatBannedRights.Flags.view_messages });
|
||||
```
|
||||
|
||||
<a name="history"></a>
|
||||
### Get all messages (history) from a chat
|
||||
```csharp
|
||||
|
|
|
|||
4
FAQ.md
4
FAQ.md
|
|
@ -19,7 +19,9 @@ You could switch the current user via an `Auth_Logout` followed by a `LoginUserI
|
|||
Instead, if you want to deal with multiple users from the same machine, the recommended solution is to have a different session file for each user. This can be done by having your Config callback reply with a different filename (or folder) for "**session_pathname**" for each user.
|
||||
This way, you can keep separate session files (each with their authentication keys) for each user.
|
||||
|
||||
If you need to manage these user accounts in parallel, you can create multiple instances of WTelegram.Client, and give them a Config callback that will select a different session file.
|
||||
If you need to manage these user accounts in parallel, you can create multiple instances of WTelegram.Client,
|
||||
and give them a Config callback that will select a different session file ;
|
||||
for example: `new WTelegram.Client(what => Config(what, "session42"))`
|
||||
|
||||
Also please note that the session files are encrypted with your api_hash, so if you change it, the existing session files can't be read anymore.
|
||||
Your api_id/api_hash represents your application, and shouldn't change with each user account the application will manage.
|
||||
|
|
|
|||
Loading…
Reference in a new issue