Agreed. Stream expressions are the way to go here, but I'll add a twist: I would consider setting dummy pools for both facebook and twitter so you actually monitor them. In your rule you can then simply check the status of the pool(s). If up, don't modify the response content. If not, null it out. From a design perspective the advantage to this is that you're not actually monitoring via the data plane, like a sideband connection or HTTP::retry would do: in other words, you're not potentially stalling the response waiting for an OOB connection to another site. Native BigIP monitoring facilities seem like a better choice here, and allow you the same flexibility if not more.
HTH, and please post back your solution - this is an interesting use case.
-- Matt Cauthorn