WhatsApp requires that you have a mobile device (Android or iOS) connect through the official client at least once every two weeks. They also monitor for "suspicious" API usage, and will ban accounts for using their service wrong (though it is very uncommon and often temporary).
The only mostly FOSS third party solution I am aware of is the mautrix-whatsapp bridge. The developer of that bridge also created Whatsmeow, a WhatsApp Golang library.
mautrix-whatsapp requires a mobile device to connect using the official WhatsApp app. It pretends to be a WhatsApp Web client, and allows you to send and recieve WhatsApp messages on Matrix. The bridge (effectively) requires hosting your own Matrix homeserver, so it's not a simple solution.
all 11 comments