This is where I was definitely BU
No you weren't.
She has hinted at you 900 times, (on top of a bad day, which everyone has, & everyone eventually reacts to) you finally had enough & pulled her up on her childish act.
She looked a bit put out but did say she wanted a lift, which I did for her
She was surprised to be called out on her hinting act, but not too surprised to accept your kind offer. Also your direct demonstration of the fact that if she asks you for something, & you can give it, you will - but that hinting for it is fucking you off.
I got a text from another colleague a few minutes ago saying she's a bit upset I 'had a go at her' in the staffroom, and she thinks it was a bit out of order.
Who thinks you are out of order? The Friend herself, or the colleague?
Either way, Friend can get to fuck with her Flying Monkey tactic - it's just another cowardly, manipulative behaviour.
Admittedly other people were there and I wasn't that quiet.
So what? You had not need to be quiet - you were doing nothing to be ashamed of.
I feel really bad about upsetting her, is an apology enough or should I do something else?
Fucking hell OP - has your Friend stopped for one moment to consider whther YOU might have been upset? - or is it all only about her, & what she is feeling?
Here comes your 3rd piece of manipulation to add to the initial hinting behaviour & subsequent Flying Monkey recruitment. If you apologise, Friend will sniff bravely, accept graciously but with a lip still quivering a little with noble hurt, & forever use this NON-EVENT as a giant stick to beat you with - the Time That Newuser Snapped At Me And I Was So Upset. She will continue with that entirely ridiculous narrative, & never, ever, wonder what she might have done to cause you to finally snap. It will never occur to her that her hinting is upsetting/annoying/whatever for YOU, because - obviously - you don't go crying from the staff room over non-events, or recruiting flying monkeys to ramp up the drama.
However - if you DON'T apologise ... ho hum, ditto the paragraph above, unfortunately.
Friend loves to be the victim - it's part of her Hinter personality - take the rewards but never accept responsibility for asking for them - moan on & on about 43 minute journeys in a passive-aggressive manner but never consider how your manipulating & emotionally blackmail might make other people "a bit upset" ...
I suspect your only solution is to gird your loins for a quiet chat - but ONLY offer an apology of you can find some way of making her understand that SHE also owes YOU an apology for the constant emotional blackmail. That's gonna be a toughie.
You could try something along the lines of "it's a shame you felt upset, & also a shame you didn't tell me so yourself but got Colleague to do so. I was upset too, because you never treat me like an adult who can be asked for a jaffa cake or a lift home, but pull sad-eyes & drop hints instead of simply coming out with it & asking me to do you a favour. As you already know, I'm usually happy to do you a favour - but I've been increasingly unhappy with your inability to ask me outright, & have been feeling manipulated by it. Yesterday was the last straw & I snapped. I'm sorry about that, but would also like to hear that you are trying to look at things from my side, & are sorry for winding me up by not being straightforward with me when you want something. I have no problem with helping you out & doing little favours, it's what friends are for. I DO have a problem with the constant hints & sighs, it pisses me off & makes me feel like you don't respect our friendship enough to simply ask me outright."
Blimey.
Too long!
But someone will be along in a minute with a brilliant, condensed version - I hope you get what I am driving at OP? You need to give her both barrels, calmly, succinctly - or she will never change her behaviour, & probably even ramp it up if she thinks she's got a new lever to pull. Running to someone else to discuss a minor upset like this is ... ludicrous. Sorry you had to put up with such arrant feckin' nonsense - 