I think the answer is no*. In order to opt in the user would have to sign the transaction with the asset id.
*There is at least one way around it, namely rekey the users account to the application address and create inner transactions that opt in and transfer but its not a method I’d recommend.