The big problem with oauth is how inconsistent everybodies implementations are. There isn't a good library because there are so many edge cases where API's implement it differently.
It's a developer hostile mechanism, but unfortunately it's the best option out there for granting subset access to an API with easy token revocation.