Regarding your two approaches:
GUI Extension could be useful as an approach in the context of where the content is created, but I agree with Bart that this is somewhat removed from publishing.
A deployer extension seems like a good spot for "also deploy to these channels."
But for these requirements, I'd first confirm:
- Developer skills and availability (Social Media APIs, Tridion APIs, etc.)
- How will the list of Social Media Networks might change
- Business case
What automatic social media posting possibly saves authors is the need to either:
- Go to each social media site to paste the same content and/or link to the content OR
- Click on some sharing button for each new page or component presentation
Posting to "Social Media" adds a
p:n requirement to your channels where
p is your Publishable Publications and
N is the (current) number of social media channels.
As additional, practical approaches consider:
A way to bring an social media aggregator "closer" to the author. This could be something like Bart Koopman's View in Staging/Live extension, especially if your published pages already have sharing buttons (e.g. "AddThis"). Authors just need to get to the page and will press possibly the same number of clicks (one for each social media network).
A way to consolidate to fewer formats (e.g. RSS or any social media network that auto posts to another) to publish to multiple social media channels. I haven't used them but possibly something like TwitterFeed.com or FeedPoster.com.
I'm not sure which aggregators are the most popular, but any chance to reduce the number of APIs is probably a good idea especially since they can change or the business may request new ones. For example, Twitter has version 1.0 and 1.1 of its API and Facebook lists its API roadmap.
If still using metadata and authors need control for where to post, I would avoid Boolean (T/F or Y/N) fields and opt for maybe a Category called "Share" with values for the current social media platforms. That way you can add, remove, and change fields through new keywords without schema changes.