Withdraw from a contract

I have a BEP20 token X and a Smart Contract A

Smart Contract A contains 1000 X Tokens.

How can an User get a defined amount of X Tokens from this Smart Contract? (something like an Airdrop)

So Basically a user should call a method like: getAirdrop() and then should get 1000 X tokens from Contact A.

I found a simple airdrop contract but don't understand how to get it to know which token I am referring to.

your getAirdrop() function should have a parameter for the users to specify which tokens to get airdrop for i.e. A.getAirdrop(X). Within the function code, you need to do something like IERC20(X).transfer(msg.sender, 1000).

Might probably also want to keep track of which addresses alr took the airdrop.