Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(service): Add Streamlabs service #463

Open
nikoksr opened this issue Nov 16, 2022 · 5 comments
Open

feat(service): Add Streamlabs service #463

nikoksr opened this issue Nov 16, 2022 · 5 comments
Labels
affects/services Issue or PR related to a notification service. good first issue Good for newcomers hacktoberfest help wanted Extra attention is needed type/feature New feature or request up for grabs

Comments

@nikoksr
Copy link
Owner

nikoksr commented Nov 16, 2022

Describe the missing service. Please provide useful links.

Add new service for Streamlabs. API docs can be found here.

@nikoksr nikoksr added help wanted Extra attention is needed good first issue Good for newcomers affects/services Issue or PR related to a notification service. up for grabs hacktoberfest type/feature New feature or request labels Nov 16, 2022
@GitHubEmploy
Copy link

GitHubEmploy commented Dec 22, 2022

To create an API service for Streamlabs in Go, you will need to do the following:

First, you will need to sign up for a Streamlabs account and obtain your API key. You can do this by visiting the Streamlabs website and following the instructions to create an account and retrieve your API key.

Next, you will need to install Go on your system if it is not already installed. You can do this by following the instructions on the Go website.

Once Go is installed, you can create a new project directory and create a main.go file in that directory.

In the main.go file, you will need to import the necessary packages for making HTTP requests and handling JSON data. You can do this by adding the following lines at the top of your file:

import (
    "encoding/json"
    "net/http"
)

Next, you will need to define the endpoint and method for your API service. For example, if you want to create a service that retrieves a list of streams from Streamlabs, you might define the endpoint as "https://api.streamlabs.com/v1.0/streams" and the method as "GET".

Then, you will need to create a function that makes an HTTP request to the Streamlabs API using the endpoint and method you defined. You can use the "http" package to do this. For example:

func getStreams() ([]byte, error) {
    req, err := http.NewRequest("GET", "https://api.streamlabs.com/v1.0/streams", nil)
    if err != nil {
        return nil, err
    }

    // Add your API key to the request header
    req.Header.Add("Authorization", "Bearer YOUR_API_KEY")

    // Send the request and get the response
    client := &http.Client{}
    res, err := client.Do(req)
    if err != nil {
        return nil, err
    }
    defer res.Body.Close()

    // Read the response body into a []byte
    body, err := ioutil.ReadAll(res.Body)
    if err != nil {
        return nil, err
    }

    return body, nil
}

Finally, you will need to create a handler function that will be called when someone makes a request to your API service. This function should call the getStreams() function defined above and return the response to the client. For example:

func streamHandler(w http.ResponseWriter, r *http.Request) {
    // Call the getStreams function
    body, err := getStreams()
    if err != nil {
        http.Error(w, err.Error(), http.StatusInternalServerError)
        return
    }

    // Return the response to the client
    w.Header().Set("Content-Type", "application/json")
    w.Write(body)
}

Finally, you will need to set up a server to listen for incoming requests and call the appropriate handler function. You can do this by adding the following lines to your main() function:

http.HandleFunc("/streams", streamHandler)
http.ListenAndServe(":8080", nil)

This will start an HTTP server that listens for requests on port 8080 and calls the streamHandler function whenever a request is made to the "/streams" endpoint.

To test your API service, you can use a tool like Postman or cURL to make a GET request to the "/streams" endpoint. If everything is set up correctly, you should receive a response containing a list of streams from Streamlabs.

You can expand on this basic API service by adding additional endpoint and handler functions for different Streamlabs API features, such as creating alerts or retrieving user information. You can also add error handling and validation to your functions to improve the reliability and security of your service.

I hope this helps! Let me know if you have any questions or need further assistance.

@amalmadhu06
Copy link

Hi @nikoksr
Can I work on this?

@nikoksr
Copy link
Owner Author

nikoksr commented Jun 7, 2023

Hey @amalmadhu06, sorry for the late response. In case your still interested, we'd greatly appreciate your contribution!

@AnuraagReddy123
Copy link

Hey if this issue is still open can I work on this?
I am new to Go so would that be a problem?

@Martin-MacDonald
Copy link

@nikoksr is this issue still available? Quite like to pick it up if so

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
affects/services Issue or PR related to a notification service. good first issue Good for newcomers hacktoberfest help wanted Extra attention is needed type/feature New feature or request up for grabs
Projects
None yet
Development

No branches or pull requests

5 participants