Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a major expansion of Hybridauth, to be able to do two-way transfer of content data using a data structure based on the Atom feed format. This includes multimedia.
It fixes a major pain point many of us will have working with social media - while the companies give us APIs, they don't follow basic standards for interoperability as they are fundamentally disinterested (i.e. it's against their interests). With this, Hybridauth becomes middleware to provide this missing functionality.
You can even ask Hybridauth to create an actual Atom feed for you with this API.
It is up to individual providers to implement the API, if they can and want to. I've tried to avoid making this bloated, while also making it very flexible.
This initial implementation adds read/write support for Facebook, Twitter, and YouTube. It adds read-support for Instagram (as write-support is not possible in the public API).
YouTube is a totally new provider.
I expect this can all eventually replace the old status API that a few providers currently implement, as this provides all that functionality and a lot more. However, we don't need to worry about that for now.
Btw, some of the HTTP stuff is done using native PHP URL wrappers. This is because I didn't want to try and force the existing HttpClientInterface to deal with the unusual call patterns chunked uploading requires, and we can always rely on PHP URL wrappers working. If this is a problem (and I'm really hoping it's not), we should probably just rip out HttpClientInterface from Hybridauth and directly depend on Guzzle (if even that could do this cleanly, I don't know).