I would say the difference is in the strength of the action. Longing is stronger than desire, and desire is stronger than wish.
So I might "wish for a new bike," but not actually expect to get one.
If I "desire a new bike," I will probably save my money and go buy one.
If I "long for a new bike," it means that I really, really want it. Longing, however, also has a connotation that maybe it's something that you cannot have. For example, I might long to see a relative again who has died, but of course, I cannot.