They usually/often have the buttons at the Front Desk, so it doesn't hurt to ask (although, any location can run out of things at times). So if the front desk doesn't have them, you can ask at City Hall and a lot of the gift shops also have buttons. So if the line is really long at City Hall/Guest Services, try one of the nearby shops.
In addition to City Hall and Chamber of Commerce and the shops in the parks, sometimes you can get them at the registers at WOD and it never hurts to check with various CMs (especially if you see they have pockets).
We were able to get my daughter's birthday button at a location right by the bag check on the Harbor Blvd side on our first day going in. There's some sort of information counter there. They had a pin trading board we could look at too.