java.lang.Object
it.auties.whatsapp.api.Whatsapp
A class used to interface a user to WhatsappWeb's WebSocket.
It provides various functionalities, including the possibility to query, set and modify data associated with the loaded session of whatsapp.
It can be configured using a default configuration or a custom one.
Multiple instances of this class can be initialized, though it is not advisable as; is a singleton and cannot distinguish between the data associated with each session.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
A configuration class used to specify the behaviour ofWhatsapp
-
Method Summary
Modifier and TypeMethodDescriptionacceptInvite
(@NonNull String inviteCode) Accepts the invite for a groupaddActionListener
(OnAction onAction) Registers an action listeneraddActionListener
(OnWhatsappAction onAction) Registers an action listeneraddChatMessagesListener
(OnChatMessages onChatRecentMessages) Registers a chat recent messages listeneraddChatMessagesListener
(OnWhatsappChatMessages onChatRecentMessages) Registers a chat recent messages listeneraddChatsListener
(OnChats onChats) Registers a chats listeneraddChatsListener
(OnWhatsappChats onChats) Registers a chats listeneraddContactPresenceListener
(OnContactPresence onContactPresence) Registers a contact presence listeneraddContactPresenceListener
(OnWhatsappContactPresence onContactPresence) Registers a contact presence listeneraddContactsListener
(OnContacts onContacts) Registers a contacts listeneraddContactsListener
(OnWhatsappContacts onContacts) Registers a contacts listeneraddDisconnectedListener
(OnDisconnected onDisconnected) Registers a disconnected listeneraddDisconnectedListener
(OnWhatsappDisconnected onDisconnected) Registers a disconnected listeneraddFeaturesListener
(OnFeatures onFeatures) Registers a features listeneraddFeaturesListener
(OnWhatsappFeatures onFeatures) Registers a features listeneraddGroupParticipant
(@NonNull ContactJidProvider group, @NonNull ContactJidProvider @NonNull ... contacts) Adds any number of contacts to a groupaddListener
(@NonNull Listener listener) Registers a listeneraddLoggedInListener
(OnLoggedIn onLoggedIn) Registers a logged in listeneraddLoggedInListener
(OnWhatsappLoggedIn onLoggedIn) Registers a logged in listeneraddMessageDeletedListener
(OnMessageDeleted onMessageDeleted) Registers a message deleted listeneraddMessageDeletedListener
(OnWhatsappMessageDeleted onMessageDeleted) Registers a message deleted listeneraddMessageStatusListener
(OnConversationMessageStatus onConversationMessageStatus) Registers a message status listeneraddMessageStatusListener
(OnMessageStatus onMessageStatus) Registers a message status listeneraddMessageStatusListener
(OnWhatsappConversationMessageStatus onConversationMessageStatus) Registers a message status listeneraddMessageStatusListener
(OnWhatsappMessageStatus onMessageStatus) Registers a message status listeneraddMetadataListener
(OnMetadata onMetadata) Registers a metadata listeneraddMetadataListener
(OnWhatsappMetadata onMetadata) Registers a metadata listeneraddNewContactListener
(OnNewContact onNewContact) Registers a new contact listeneraddNewContactListener
(OnWhatsappNewContact onNewContact) Registers a new contact listeneraddNewMessageListener
(OnNewMessage onNewMessage) Registers a new message listeneraddNewMessageListener
(OnWhatsappNewMessage onNewMessage) Registers a new message listeneraddNewStatusListener
(OnNewStatus onNewStatus) Registers a new status listeneraddNewStatusListener
(OnWhatsappNewStatus onNewStatus) Registers a new status listeneraddNodeReceivedListener
(OnNodeReceived onNodeReceived) Registers a received node listeneraddNodeReceivedListener
(OnWhatsappNodeReceived onNodeReceived) Registers a received node listeneraddNodeSentListener
(OnNodeSent onNodeSent) Registers a sent node listeneraddNodeSentListener
(OnWhatsappNodeSent onNodeSent) Registers a sent node listeneraddSerialization
(OnWhatsappSocketEvent onSocketEvent) Registers an event listeneraddSettingListener
(OnSetting onSetting) Registers a setting listeneraddSettingListener
(OnWhatsappSetting onSetting) Registers a setting listeneraddSocketEventListener
(OnSocketEvent onSocketEvent) Registers an event listeneraddSocketEventListener
(OnWhatsappSocketEvent onSocketEvent) Registers an event listeneraddStatusListener
(OnStatus onStatus) Registers a status listeneraddStatusListener
(OnWhatsappStatus onStatus) Registers a status listener<T extends ContactJidProvider>
CompletableFuture<T>archive
(T chat) Archives a chat.await()
Waits for the socket to be closed on the current thread<T extends ContactJidProvider>
CompletableFuture<T>block
(T chat) Blocks a contactchangeBusinessAddress
(String address) Change the address of this business profilechangeBusinessCategories
(List<BusinessCategory> categories) Change the categories of this business profilechangeBusinessDescription
(String description) Change the description of this business profilechangeBusinessEmail
(String email) Change the email of this business profilechangeBusinessWebsites
(List<URI> websites) Change the websites of this business profile<T extends ContactJidProvider>
CompletableFuture<T>changeEphemeralTimer
(T chat, @NonNull ChatEphemeralTimer timer) Enables ephemeral messages in a chat, this means that messages will be automatically cancelled in said chat after a week<T extends ContactJidProvider>
CompletableFuture<T>changeGroupDescription
(T group, String description) Changes the description of a group<T extends ContactJidProvider>
CompletableFuture<T>changeGroupPicture
(T group, byte[] image) Changes the picture of a group<T extends ContactJidProvider>
CompletableFuture<T>changeGroupSubject
(T group, @NonNull String newName) Changes the name of a groupchangePresence
(boolean available) Changes your presence for everyone on Whatsapp<T extends ContactJidProvider>
CompletableFuture<T>changePresence
(T chat, @NonNull ContactStatus presence) Changes your presence for a specific chatchangeProfilePicture
(byte[] image) Changes the profile picture of yourself<T extends ContactJidProvider>
CompletableFuture<T>changeWhoCanEditInfo
(T group, @NonNull GroupPolicy policy) Changes which category of users can edit the group's settings<T extends ContactJidProvider>
CompletableFuture<T>changeWhoCanSendMessages
(T group, @NonNull GroupPolicy policy) Changes which category of users can send messages in a group<T extends ContactJidProvider>
CompletableFuture<T>clear
(T chat, boolean keepStarredMessages) Clears the content of a chat for this client and its companions using a modern version of Whatsappconnect()
Opens a connection with Whatsapp Web's WebSocket if a previous connection doesn't existcreateGroup
(@NonNull String subject, @NonNull ContactJidProvider... contacts) Creates a new group with the provided name and with at least one contactdelete()
Deletes the data associated with this session and disconnects from itdelete
(@NonNull MessageInfo info, boolean everyone) Deletes a message<T extends ContactJidProvider>
CompletableFuture<T>delete
(T chat) Deletes a chat for this client and its companions using a modern version of Whatsappstatic void
Deletes all the known connections from memorydemote
(@NonNull ContactJidProvider group, @NonNull ContactJidProvider @NonNull ... contacts) Demotes any number of contacts to admin in a groupDisconnects from Whatsapp Web's WebSocket if a previous connection existsstatic Whatsapp
Constructs a new instance of the API from the first session opened.static Whatsapp
firstConnection
(@NonNull Whatsapp.Options options) Constructs a new instance of the API from the first session opened.hasWhatsapp
(@NonNull ContactJidProvider @NonNull ... chats) Executes a query to determine whether any number of users have an account on Whatsappkeys()
Returns the keys associated with this sessionstatic Whatsapp
Constructs a new instance of the API from the last session opened.static Whatsapp
lastConnection
(@NonNull Whatsapp.Options options) Constructs a new instance of the API from the last session opened.<T extends ContactJidProvider>
CompletableFuture<T>leaveGroup
(T group) Leaves a groupReturns a list of all known connectionslogout()
Disconnects from Whatsapp Web's WebSocket and logs out of WhatsappWeb invalidating the previous saved credentials.<T extends ContactJidProvider>
CompletableFuture<T>markRead
(T chat) Marks a chat as read<T extends ContactJidProvider>
CompletableFuture<T>markUnread
(T chat) Marks a chat as unread<T extends ContactJidProvider>
CompletableFuture<T>mute
(T chat) Mutes a chat indefinitely<T extends ContactJidProvider>
CompletableFuture<T>Mutes a chatstatic Whatsapp
Constructs a new instance of the APIstatic Whatsapp
newConnection
(int id) Constructs a new instance of the API.static Whatsapp
newConnection
(@NonNull Whatsapp.Options options) Constructs a new instance of the API.static Whatsapp
newConnection
(@NonNull Whatsapp.Options options, @NonNull Store store, @NonNull Keys keys) Constructs a new instance of the API from a fresh connection using a random id<T extends ContactJidProvider>
CompletableFuture<T>pin
(T chat) Pins a chat to the top.promote
(@NonNull ContactJidProvider group, @NonNull ContactJidProvider @NonNull ... contacts) Promotes any number of contacts to admin in a groupQueries the block listQuery the catalog of this businessqueryBusinessCatalog
(int productsLimit) Query the catalog of this businessqueryBusinessCatalog
(@NonNull ContactJidProvider contact) Query the catalog of a businessqueryBusinessCatalog
(@NonNull ContactJidProvider contact, int productsLimit) Query the catalog of a businessQueries all the known business categoriesQuery the collections of this businessqueryBusinessCollections
(int collectionsLimit) Query the collections of this businessqueryBusinessCollections
(@NonNull ContactJidProvider contact) Query the collections of a businessqueryBusinessCollections
(@NonNull ContactJidProvider contact, int collectionsLimit) Query the collections of a businessqueryBusinessProfile
(@NonNull ContactJidProvider contact) Queries a business profile, if any existsqueryGroupInviteCode
(@NonNull ContactJidProvider chat) Queries the invite code of a groupqueryGroupMetadata
(@NonNull ContactJidProvider chat) Queries the metadata of a groupqueryPicture
(@NonNull ContactJidProvider chat) Queries the profile picturequeryStatus
(@NonNull ContactJidProvider chat) Queries the written whatsapp status of a ContactDisconnects and reconnects to Whatsapp Web's WebSocket if a previous connection existsremoveGroupParticipant
(@NonNull ContactJidProvider group, @NonNull ContactJidProvider @NonNull ... contacts) Removes any number of contacts from groupremoveListener
(@NonNull Listener listener) Removes a listenerremoveReaction
(@NonNull MessageMetadataProvider message) Remove a reaction from a message<T extends ContactJidProvider>
CompletableFuture<T>revokeInviteCode
(T chat) Revokes the invite code of a groupsendMessage
(@NonNull ContactJidProvider chat, @NonNull ContextualMessage message, @NonNull ContextInfo contextInfo) Builds and sends a message from a chat, a message and a contextsendMessage
(@NonNull ContactJidProvider chat, @NonNull ContextualMessage message, @NonNull MessageMetadataProvider quotedMessage) Builds and sends a message from a chat, a message and a quoted messagesendMessage
(@NonNull ContactJidProvider chat, @NonNull Message message) Builds and sends a message from a chat and a messagesendMessage
(@NonNull ContactJidProvider chat, @NonNull MessageContainer message) Builds and sends a message from a chat and a messagesendMessage
(@NonNull ContactJidProvider chat, @NonNull String message) Builds and sends a message from a chat and a messagesendMessage
(@NonNull ContactJidProvider chat, @NonNull String message, @NonNull MessageMetadataProvider quotedMessage) Builds and sends a message from a chat, a message and a quoted messagesendMessage
(@NonNull MessageInfo info) Sends a message info to a chatsendReaction
(@NonNull MessageMetadataProvider message, String reaction) Send a reaction to a messagestar
(@NonNull MessageInfo info) Stars a messagestore()
Returns the store associated with this sessionReturns a stream of all known connections<T extends ContactJidProvider>
CompletableFuture<T>subscribeToPresence
(T jid) Sends a request to Whatsapp in order to receive updates when the status of a contact changes.<T extends ContactJidProvider>
CompletableFuture<T>unarchive
(T chat) Unarchives a chat<T extends ContactJidProvider>
CompletableFuture<T>unblock
(T chat) Unblocks a contact<T extends ContactJidProvider>
CompletableFuture<T>unmute
(T chat) Unmutes a chat<T extends ContactJidProvider>
CompletableFuture<T>unpin
(T chat) Unpins a chat from the topunstar
(@NonNull MessageInfo info) Removes star from a message
-
Method Details
-
newConnection
Constructs a new instance of the API. If the id is not associated with any session, a new one will be created.- Parameters:
id
- the id of the session- Returns:
- a non-null Whatsapp instance
-
newConnection
Constructs a new instance of the API- Returns:
- a non-null Whatsapp instance
-
newConnection
Constructs a new instance of the API. If the id is not associated with any session, a new one will be created.- Parameters:
options
- the non-null options used to create this session- Returns:
- a non-null Whatsapp instance
-
newConnection
public static Whatsapp newConnection(@NonNull @NonNull Whatsapp.Options options, @NonNull @NonNull Store store, @NonNull @NonNull Keys keys) Constructs a new instance of the API from a fresh connection using a random id- Parameters:
options
- the non-null options used to create this sessionstore
- the non-null store used to create this sessionkeys
- the non-null keys used to create this session- Returns:
- a non-null Whatsapp instance
-
firstConnection
Constructs a new instance of the API from the first session opened. If no sessions are available, a new one will be created.- Returns:
- a non-null Whatsapp instance
-
firstConnection
Constructs a new instance of the API from the first session opened. If no sessions are available, a new one will be created.- Parameters:
options
- the non-null options- Returns:
- a non-null Whatsapp instance
-
lastConnection
Constructs a new instance of the API from the last session opened. If no sessions are available, a new one will be created.- Returns:
- a non-null Whatsapp instance
-
lastConnection
Constructs a new instance of the API from the last session opened. If no sessions are available, a new one will be created.- Parameters:
options
- the non-null options- Returns:
- a non-null Whatsapp instance
-
listConnections
Returns a list of all known connections- Returns:
- a non-null List
-
streamConnections
Returns a stream of all known connections- Returns:
- a non-null Stream
-
deleteConnections
public static void deleteConnections()Deletes all the known connections from memory -
store
Returns the store associated with this session- Returns:
- a non-null WhatsappStore
-
keys
Returns the keys associated with this session- Returns:
- a non-null WhatsappKeys
-
addListener
Registers a listener- Parameters:
listener
- the listener to register- Returns:
- the same instance
-
addActionListener
Registers an action listener- Parameters:
onAction
- the listener to register- Returns:
- the same instance
-
addChatMessagesListener
Registers a chat recent messages listener- Parameters:
onChatRecentMessages
- the listener to register- Returns:
- the same instance
-
addChatsListener
Registers a chats listener- Parameters:
onChats
- the listener to register- Returns:
- the same instance
-
addContactPresenceListener
Registers a contact presence listener- Parameters:
onContactPresence
- the listener to register- Returns:
- the same instance
-
addContactsListener
Registers a contacts listener- Parameters:
onContacts
- the listener to register- Returns:
- the same instance
-
addMessageStatusListener
Registers a message status listener- Parameters:
onConversationMessageStatus
- the listener to register- Returns:
- the same instance
-
addMessageStatusListener
Registers a message status listener- Parameters:
onMessageStatus
- the listener to register- Returns:
- the same instance
-
addDisconnectedListener
Registers a disconnected listener- Parameters:
onDisconnected
- the listener to register- Returns:
- the same instance
-
addFeaturesListener
Registers a features listener- Parameters:
onFeatures
- the listener to register- Returns:
- the same instance
-
addLoggedInListener
Registers a logged in listener- Parameters:
onLoggedIn
- the listener to register- Returns:
- the same instance
-
addMessageDeletedListener
Registers a message deleted listener- Parameters:
onMessageDeleted
- the listener to register- Returns:
- the same instance
-
addMetadataListener
Registers a metadata listener- Parameters:
onMetadata
- the listener to register- Returns:
- the same instance
-
addNewContactListener
Registers a new contact listener- Parameters:
onNewContact
- the listener to register- Returns:
- the same instance
-
addNewMessageListener
Registers a new message listener- Parameters:
onNewMessage
- the listener to register- Returns:
- the same instance
-
addNewStatusListener
Registers a new status listener- Parameters:
onNewStatus
- the listener to register- Returns:
- the same instance
-
addNodeReceivedListener
Registers a received node listener- Parameters:
onNodeReceived
- the listener to register- Returns:
- the same instance
-
addNodeSentListener
Registers a sent node listener- Parameters:
onNodeSent
- the listener to register- Returns:
- the same instance
-
addSettingListener
Registers a setting listener- Parameters:
onSetting
- the listener to register- Returns:
- the same instance
-
addStatusListener
Registers a status listener- Parameters:
onStatus
- the listener to register- Returns:
- the same instance
-
addSocketEventListener
Registers an event listener- Parameters:
onSocketEvent
- the listener to register- Returns:
- the same instance
-
addActionListener
Registers an action listener- Parameters:
onAction
- the listener to register- Returns:
- the same instance
-
addChatMessagesListener
Registers a chat recent messages listener- Parameters:
onChatRecentMessages
- the listener to register- Returns:
- the same instance
-
addChatsListener
Registers a chats listener- Parameters:
onChats
- the listener to register- Returns:
- the same instance
-
addContactPresenceListener
Registers a contact presence listener- Parameters:
onContactPresence
- the listener to register- Returns:
- the same instance
-
addContactsListener
Registers a contacts listener- Parameters:
onContacts
- the listener to register- Returns:
- the same instance
-
addMessageStatusListener
public Whatsapp addMessageStatusListener(OnWhatsappConversationMessageStatus onConversationMessageStatus) Registers a message status listener- Parameters:
onConversationMessageStatus
- the listener to register- Returns:
- the same instance
-
addMessageStatusListener
Registers a message status listener- Parameters:
onMessageStatus
- the listener to register- Returns:
- the same instance
-
addDisconnectedListener
Registers a disconnected listener- Parameters:
onDisconnected
- the listener to register- Returns:
- the same instance
-
addFeaturesListener
Registers a features listener- Parameters:
onFeatures
- the listener to register- Returns:
- the same instance
-
addLoggedInListener
Registers a logged in listener- Parameters:
onLoggedIn
- the listener to register- Returns:
- the same instance
-
addMessageDeletedListener
Registers a message deleted listener- Parameters:
onMessageDeleted
- the listener to register- Returns:
- the same instance
-
addMetadataListener
Registers a metadata listener- Parameters:
onMetadata
- the listener to register- Returns:
- the same instance
-
addNewContactListener
Registers a new contact listener- Parameters:
onNewContact
- the listener to register- Returns:
- the same instance
-
addNewMessageListener
Registers a new message listener- Parameters:
onNewMessage
- the listener to register- Returns:
- the same instance
-
addNewStatusListener
Registers a new status listener- Parameters:
onNewStatus
- the listener to register- Returns:
- the same instance
-
addNodeReceivedListener
Registers a received node listener- Parameters:
onNodeReceived
- the listener to register- Returns:
- the same instance
-
addNodeSentListener
Registers a sent node listener- Parameters:
onNodeSent
- the listener to register- Returns:
- the same instance
-
addSettingListener
Registers a setting listener- Parameters:
onSetting
- the listener to register- Returns:
- the same instance
-
addStatusListener
Registers a status listener- Parameters:
onStatus
- the listener to register- Returns:
- the same instance
-
addSocketEventListener
Registers an event listener- Parameters:
onSocketEvent
- the listener to register- Returns:
- the same instance
-
addSerialization
Registers an event listener- Parameters:
onSocketEvent
- the listener to register- Returns:
- the same instance
-
removeListener
Removes a listener- Parameters:
listener
- the listener to remove- Returns:
- the same instance
-
await
Waits for the socket to be closed on the current thread- Returns:
- the same instance
-
connect
Opens a connection with Whatsapp Web's WebSocket if a previous connection doesn't exist- Returns:
- the same instance wrapped in a completable future
-
disconnect
Disconnects from Whatsapp Web's WebSocket if a previous connection exists- Returns:
- the same instance wrapped in a completable future
-
delete
Deletes the data associated with this session and disconnects from it- Returns:
- the same instance wrapped in a completable future
-
reconnect
Disconnects and reconnects to Whatsapp Web's WebSocket if a previous connection exists- Returns:
- the same instance wrapped in a completable future
-
logout
Disconnects from Whatsapp Web's WebSocket and logs out of WhatsappWeb invalidating the previous saved credentials. The next time the API is used, the QR code will need to be scanned again.- Returns:
- the same instance wrapped in a completable future
-
subscribeToPresence
Sends a request to Whatsapp in order to receive updates when the status of a contact changes. These changes include the last known presence and the endTimeStamp the contact was last seen.- Parameters:
jid
- the contact whose status the api should receive updates on- Returns:
- a CompletableFuture
-
removeReaction
public CompletableFuture<MessageInfo> removeReaction(@NonNull @NonNull MessageMetadataProvider message) Remove a reaction from a message- Parameters:
message
- the non-null message- Returns:
- a CompletableFuture
-
sendReaction
public CompletableFuture<MessageInfo> sendReaction(@NonNull @NonNull MessageMetadataProvider message, String reaction) Send a reaction to a message- Parameters:
message
- the non-null messagereaction
- the reaction to send, null if you want to remove the reaction- Returns:
- a CompletableFuture
-
sendMessage
public CompletableFuture<MessageInfo> sendMessage(@NonNull @NonNull ContactJidProvider chat, @NonNull @NonNull String message) Builds and sends a message from a chat and a message- Parameters:
chat
- the chat where the message should be sentmessage
- the message to send- Returns:
- a CompletableFuture
-
sendMessage
public CompletableFuture<MessageInfo> sendMessage(@NonNull @NonNull ContactJidProvider chat, @NonNull @NonNull String message, @NonNull @NonNull MessageMetadataProvider quotedMessage) Builds and sends a message from a chat, a message and a quoted message- Parameters:
chat
- the chat where the message should be sentmessage
- the message to sendquotedMessage
- the quoted message- Returns:
- a CompletableFuture
-
sendMessage
public CompletableFuture<MessageInfo> sendMessage(@NonNull @NonNull ContactJidProvider chat, @NonNull @NonNull ContextualMessage message, @NonNull @NonNull MessageMetadataProvider quotedMessage) Builds and sends a message from a chat, a message and a quoted message- Parameters:
chat
- the chat where the message should be sentmessage
- the message to sendquotedMessage
- the quoted message- Returns:
- a CompletableFuture
-
sendMessage
public CompletableFuture<MessageInfo> sendMessage(@NonNull @NonNull ContactJidProvider chat, @NonNull @NonNull ContextualMessage message, @NonNull @NonNull ContextInfo contextInfo) Builds and sends a message from a chat, a message and a context- Parameters:
chat
- the chat where the message should be sentmessage
- the message to sendcontextInfo
- the context of the message to send- Returns:
- a CompletableFuture
-
sendMessage
public CompletableFuture<MessageInfo> sendMessage(@NonNull @NonNull ContactJidProvider chat, @NonNull @NonNull Message message) Builds and sends a message from a chat and a message- Parameters:
chat
- the chat where the message should be sentmessage
- the message to send- Returns:
- a CompletableFuture
-
sendMessage
public CompletableFuture<MessageInfo> sendMessage(@NonNull @NonNull ContactJidProvider chat, @NonNull @NonNull MessageContainer message) Builds and sends a message from a chat and a message- Parameters:
chat
- the chat where the message should be sentmessage
- the message to send- Returns:
- a CompletableFuture
-
sendMessage
Sends a message info to a chat- Parameters:
info
- the info to send- Returns:
- a CompletableFuture
-
hasWhatsapp
public CompletableFuture<List<HasWhatsappResponse>> hasWhatsapp(@NonNull @NonNull ContactJidProvider @NonNull ... chats) Executes a query to determine whether any number of users have an account on Whatsapp- Parameters:
chats
- the users to check- Returns:
- a CompletableFuture that wraps a non-null list of HasWhatsappResponse
-
queryBlockList
Queries the block list- Returns:
- a CompletableFuture that wraps a non-null list of ContactJid
-
queryStatus
public CompletableFuture<Optional<ContactStatusResponse>> queryStatus(@NonNull @NonNull ContactJidProvider chat) Queries the written whatsapp status of a Contact- Parameters:
chat
- the target contact- Returns:
- a CompletableFuture that wraps an optional contact status response
-
queryPicture
Queries the profile picture- Parameters:
chat
- the chat of the chat to query- Returns:
- a CompletableFuture that wraps nullable jpg url hosted on Whatsapp's servers
-
queryGroupMetadata
public CompletableFuture<GroupMetadata> queryGroupMetadata(@NonNull @NonNull ContactJidProvider chat) Queries the metadata of a group- Parameters:
chat
- the target group- Returns:
- a CompletableFuture
-
queryBusinessProfile
public CompletableFuture<Optional<BusinessProfile>> queryBusinessProfile(@NonNull @NonNull ContactJidProvider contact) Queries a business profile, if any exists- Parameters:
contact
- the target contact- Returns:
- a CompletableFuture
-
queryBusinessCategories
Queries all the known business categories- Returns:
- a CompletableFuture
-
queryGroupInviteCode
Queries the invite code of a group- Parameters:
chat
- the target group- Returns:
- a CompletableFuture
-
revokeInviteCode
Revokes the invite code of a group- Parameters:
chat
- the target group- Returns:
- a CompletableFuture
-
acceptInvite
Accepts the invite for a group- Parameters:
inviteCode
- the invite code- Returns:
- a CompletableFuture
-
changePresence
Changes your presence for everyone on Whatsapp- Parameters:
available
- whether you are online or not- Returns:
- a CompletableFuture
-
changePresence
public <T extends ContactJidProvider> CompletableFuture<T> changePresence(@NonNull T chat, @NonNull @NonNull ContactStatus presence) Changes your presence for a specific chat- Parameters:
chat
- the target chatpresence
- the new status- Returns:
- a CompletableFuture
-
promote
public CompletableFuture<List<ContactJid>> promote(@NonNull @NonNull ContactJidProvider group, @NonNull @NonNull ContactJidProvider @NonNull ... contacts) Promotes any number of contacts to admin in a group- Parameters:
group
- the target groupcontacts
- the target contacts- Returns:
- a CompletableFuture
-
demote
public CompletableFuture<List<ContactJid>> demote(@NonNull @NonNull ContactJidProvider group, @NonNull @NonNull ContactJidProvider @NonNull ... contacts) Demotes any number of contacts to admin in a group- Parameters:
group
- the target groupcontacts
- the target contacts- Returns:
- a CompletableFuture
-
addGroupParticipant
public CompletableFuture<List<ContactJid>> addGroupParticipant(@NonNull @NonNull ContactJidProvider group, @NonNull @NonNull ContactJidProvider @NonNull ... contacts) Adds any number of contacts to a group- Parameters:
group
- the target groupcontacts
- the target contact/s- Returns:
- a CompletableFuture
-
removeGroupParticipant
public CompletableFuture<List<ContactJid>> removeGroupParticipant(@NonNull @NonNull ContactJidProvider group, @NonNull @NonNull ContactJidProvider @NonNull ... contacts) Removes any number of contacts from group- Parameters:
group
- the target groupcontacts
- the target contact/s- Returns:
- a CompletableFuture
-
changeGroupSubject
public <T extends ContactJidProvider> CompletableFuture<T> changeGroupSubject(@NonNull T group, @NonNull @NonNull String newName) Changes the name of a group- Parameters:
group
- the target groupnewName
- the new name for the group- Returns:
- a CompletableFuture
- Throws:
IllegalArgumentException
- if the provided new name is empty or blank
-
changeGroupDescription
public <T extends ContactJidProvider> CompletableFuture<T> changeGroupDescription(@NonNull T group, String description) Changes the description of a group- Parameters:
group
- the target groupdescription
- the new name for the group, can be null if you want to remove it- Returns:
- a CompletableFuture
-
changeWhoCanSendMessages
public <T extends ContactJidProvider> CompletableFuture<T> changeWhoCanSendMessages(@NonNull T group, @NonNull @NonNull GroupPolicy policy) Changes which category of users can send messages in a group- Parameters:
group
- the target grouppolicy
- the new policy to enforce- Returns:
- a CompletableFuture
-
changeWhoCanEditInfo
public <T extends ContactJidProvider> CompletableFuture<T> changeWhoCanEditInfo(@NonNull T group, @NonNull @NonNull GroupPolicy policy) Changes which category of users can edit the group's settings- Parameters:
group
- the target grouppolicy
- the new policy to enforce- Returns:
- a CompletableFuture
-
changeProfilePicture
Changes the profile picture of yourself- Parameters:
image
- the new image, can be null if you want to remove it- Returns:
- a CompletableFuture
-
changeGroupPicture
public <T extends ContactJidProvider> CompletableFuture<T> changeGroupPicture(@NonNull T group, byte[] image) Changes the picture of a group- Parameters:
group
- the target groupimage
- the new image, can be null if you want to remove it- Returns:
- a CompletableFuture
-
createGroup
public CompletableFuture<GroupMetadata> createGroup(@NonNull @NonNull String subject, @NonNull @NonNull ContactJidProvider... contacts) Creates a new group with the provided name and with at least one contact- Parameters:
subject
- the new group's namecontacts
- at least one contact to add to the group- Returns:
- a CompletableFuture
-
leaveGroup
Leaves a group- Parameters:
group
- the target group- Throws:
IllegalArgumentException
- if the provided chat is not a group
-
mute
Mutes a chat indefinitely- Parameters:
chat
- the target chat- Returns:
- a CompletableFuture
-
mute
public <T extends ContactJidProvider> CompletableFuture<T> mute(@NonNull T chat, @NonNull @NonNull ChatMute mute) Mutes a chat- Parameters:
chat
- the target chatmute
- the type of mute- Returns:
- a CompletableFuture
-
unmute
Unmutes a chat- Parameters:
chat
- the target chat- Returns:
- a CompletableFuture
-
block
Blocks a contact- Parameters:
chat
- the target chat- Returns:
- a CompletableFuture
-
unblock
Unblocks a contact- Parameters:
chat
- the target chat- Returns:
- a CompletableFuture
-
changeEphemeralTimer
public <T extends ContactJidProvider> CompletableFuture<T> changeEphemeralTimer(@NonNull T chat, @NonNull @NonNull ChatEphemeralTimer timer) Enables ephemeral messages in a chat, this means that messages will be automatically cancelled in said chat after a week- Parameters:
chat
- the target chat- Returns:
- a CompletableFuture
-
markRead
Marks a chat as read- Parameters:
chat
- the target chat- Returns:
- a CompletableFuture
-
markUnread
Marks a chat as unread- Parameters:
chat
- the target chat- Returns:
- a CompletableFuture
-
pin
Pins a chat to the top. A maximum of three chats can be pinned to the top. This condition can be checked using;.- Parameters:
chat
- the target chat- Returns:
- a CompletableFuture
-
unpin
Unpins a chat from the top- Parameters:
chat
- the target chat- Returns:
- a CompletableFuture
-
star
Stars a message- Parameters:
info
- the target message- Returns:
- a CompletableFuture
-
unstar
Removes star from a message- Parameters:
info
- the target message- Returns:
- a CompletableFuture
-
archive
Archives a chat. If said chat is pinned, it will be unpinned.- Parameters:
chat
- the target chat- Returns:
- a CompletableFuture
-
unarchive
Unarchives a chat- Parameters:
chat
- the target chat- Returns:
- a CompletableFuture
-
delete
Deletes a message- Parameters:
info
- the non-null message to deleteeveryone
- whether the message should be deleted for everyone or only for this client and its companions- Returns:
- a CompletableFuture
-
delete
Deletes a chat for this client and its companions using a modern version of Whatsapp- Parameters:
chat
- the non-null chat to delete- Returns:
- a CompletableFuture
-
clear
public <T extends ContactJidProvider> CompletableFuture<T> clear(@NonNull T chat, boolean keepStarredMessages) Clears the content of a chat for this client and its companions using a modern version of Whatsapp- Parameters:
chat
- the non-null chat to clearkeepStarredMessages
- whether starred messages in this chat should be kept- Returns:
- a CompletableFuture
-
changeBusinessDescription
Change the description of this business profile- Parameters:
description
- the new description, can be null- Returns:
- a CompletableFuture
-
changeBusinessAddress
Change the address of this business profile- Parameters:
address
- the new address, can be null- Returns:
- a CompletableFuture
-
changeBusinessEmail
Change the email of this business profile- Parameters:
email
- the new email, can be null. If a value is provided, it must be RFC822 compliant- Returns:
- a CompletableFuture
-
changeBusinessCategories
public CompletableFuture<List<BusinessCategory>> changeBusinessCategories(List<BusinessCategory> categories) Change the categories of this business profile- Parameters:
categories
- the new categories, can be null- Returns:
- a CompletableFuture
-
changeBusinessWebsites
Change the websites of this business profile- Parameters:
websites
- the new websites, can be null- Returns:
- a CompletableFuture
-
queryBusinessCatalog
Query the catalog of this business- Returns:
- a CompletableFuture
-
queryBusinessCatalog
Query the catalog of this business- Parameters:
productsLimit
- the maximum number of products to query- Returns:
- a CompletableFuture
-
queryBusinessCatalog
public CompletableFuture<List<BusinessCatalogEntry>> queryBusinessCatalog(@NonNull @NonNull ContactJidProvider contact) Query the catalog of a business- Parameters:
contact
- the business- Returns:
- a CompletableFuture
-
queryBusinessCatalog
public CompletableFuture<List<BusinessCatalogEntry>> queryBusinessCatalog(@NonNull @NonNull ContactJidProvider contact, int productsLimit) Query the catalog of a business- Parameters:
contact
- the businessproductsLimit
- the maximum number of products to query- Returns:
- a CompletableFuture
-
queryBusinessCollections
Query the collections of this business- Returns:
- a CompletableFuture
-
queryBusinessCollections
Query the collections of this business- Parameters:
collectionsLimit
- the maximum number of collections to query- Returns:
- a CompletableFuture
-
queryBusinessCollections
Query the collections of a business- Parameters:
contact
- the business- Returns:
- a CompletableFuture
-
queryBusinessCollections
public CompletableFuture<List<BusinessCollectionEntry>> queryBusinessCollections(@NonNull @NonNull ContactJidProvider contact, int collectionsLimit) Query the collections of a business- Parameters:
contact
- the businesscollectionsLimit
- the maximum number of collections to query- Returns:
- a CompletableFuture
-