You can get them at City Hall at Disneyland from the button cart Cast Member permanently stationed at the top of the front steps. (Pretty much just like at Magic Kingdom.) At DCA, you can get them at the Chamber of Commerce (essentially DCA's City Hall.)
SEVERAL times, I saw guests telling characters it was their first visit, or their birthday. And THEY presented the guests with the buttons! Goofy gave my son an Honorary Citizen of DL button.
I saw this happen with a few different characters in the morning, in the Hub.
They do give away all the buttons at the Disney hotels! Including anniversary, celebrating, etc. I would suggest getting the birthday ones at city hall because they write the names the cutest! Hahaha something silly, but something I care about
We got a button from the cashier in the candy shop by Pooh's in the back of critter country. We never even thought of asking for one, but after some small talk with the CM while making our candy choices (we were the only ones in the store) she wouldn't let us leave the shop without a "happily ever after" button. A small gesture from a CM can make the rest of your day magical.