Struggling with Airdrop contract

No, you just need to:

  1. Change transfer(...) to transferFrom(mag.sender, ...) and redeploy your contract
  2. Execute token.approve(airdropContractAddress, sumOfAllAmounts) using your wallet
  3. Execute airdropContract.batchTransferERC20(...) using your wallet

As recommended in one of the answers above, consider using OpenZeppelin safeTransferFrom.