Mixer C# API & Samples
A C# client library for the Mixer streaming service
What is this?
Unsatisfied with the current set of APIs that exist to interact with Mixer, I took some time to build and design an API set in C# to interact with the service. This API set can be used by anyone to build out any apps they wish to use and it’s very easy to setup.
We have must of the most common usage scenarios completed, including:
- The most common REST APIs for Channels, Chat, Interactive, and Users services
- WebSocket-based clients to use Chat, Interactive, and Constellation features
- Various OAuth logic flows to allow your application to authenticate with the Mixer endpoints and handle authorization scopes
- Unit tests and sample applications to document and show usage of all functionality
These are the current planned features to be developed in priority order:
- Add ViewModels to all APIs to make ramp-up development work easier and put less focus on knowing the dev docs top-to-bottom
- Continue filling out REST API services with less-common methods
- Add full documentation to github for API usage
How do I get started using it?
Download the NuGet package by searching for "mixer-client-csharp" or downloading it manually from https://www.nuget.org/packages/mixer-client-csharp. There are two sample apps created the help showcase some the setup needed and how to use the APIs. Additionally, there are a large serious of unit tests that go through all of the individual functionality that you can look at. I plan on creating more formal documentation soon.
I found a bug, who do I contact?
Just head over to the https://github.com/SaviorXTanren/mixer-client-csharp/issues page and create a new issue.
I have a new feature idea!
Submit feature requests at the https://github.com/SaviorXTanren/mixer-client-csharp/issues page or feel free to develop the feature yourself and submit a pull request at https://github.com/SaviorXTanren/mixer-client-csharp/pulls! I'm happy to assist anyone if they're interested in developing something as well.
Copyright (c) 2017 Matthew Olivo
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Hey everyone, wanted to reply to this thread with a large update of new functionality myself and @VerbatimT have done on the APIs together. We now have nearly full Chat, Interactive, and Constellation client functionality, along with several more REST APIs to help to most needed functionality.
We've also added extensive unit tests through out to show basic usage of each of the APIs, along with a few different sample apps to show how the APIs interact with each other. We'll be continuing to enhance the code base as time goes on, by finishing out a few more features along the way, but you can call this a v1 of the API.
We already have a few applications that we and other developers are working on using the API set and would love for other people to take use of it. We also plan on adding detailed usage documentation up on the github page that hosts this. Thanks everyone who has sent us kind words about this project and hopefully even more people might find use of it!
Heyho is it planned to push this to NuGet? I guess this would be the easiest way to implement your client into a project. :)
@KaefGAMES Yes, I plan on making this into a nuget package within the coming month or two. I'm in the middle of finishing up some updates for new APIs and large improvements to the interactive functionality, essentially making this a v2. Once that's done, I'll be making this into a full nuget package.
@KaefGAMES And with the swiftness that I like, we now have a nuget package. Enjoy!
haha thanks for the great work :)