HelloThereToad
HelloThereToad

Reputation: 279

Streamlabs API 405 response code

I'm trying to use Streamlabs API. Streamlabs API uses Oauth2 for creating apps. So first I send whoever's using my app to an authorization link containing my app's client id and the scopes I want to use.
(Something like this: streamlabs.com/api/v1.0/authorize?client_id=CLIENT-ID-HERE&redirect_uri=REDIRECT-URI&response_type=code&scope=SOME+SCOPES+HERE)

Once I've done that I receive a code at the redirect uri specified. I then use that code to get the access token for permanent access to the connected user's account. I then receive the access token from a POST request that works perfectly... Now I run into the problem. When getting the temporary code before the access token I specified the scopes: "donations.read +donations.create+alerts.write+alerts.create".

When authorizing, the app asks for permission to the different scopes. The scope in focus is "alerts.write" so that I can send test alerts using POST requests. But this doesn't work for some reason. To send a test alert I have to send a POST request to this url: "https://streamlabs.com/api/alerts/send_test_alert"

I've tried doing that in two different ways.
1:

import requests

url = "https://streamlabs.com/api/alerts/send_test_alert"

data = {
    "access_token":"UserAccessTokenHere",
    "type":"donation"
}

response = requests.post(url=url, data=data)

print(response.text)  

2:

import requests

url = "https://streamlabs.com/api/alerts/send_test_alert?access_token=UserAccessTokenHere&type=donation"

response = requests.post(url=url)

print(response.text)

If I do print(response) it prints "Response [405]".
But if I do print(response.text) I get a long HTML document for this page: Error response page

Any ideas what's going wrong with my Python requests? send_test_alert documentation here: Link

Upvotes: 2

Views: 754

Answers (1)

Tearzz
Tearzz

Reputation: 321

I've contacted support and looks like you've made the same error as me.

You're not actually sending a request to the right URL.
You are a sending a request to: "https://streamlabs.com/api/alerts/send_test_alert"

You should be using the URL: "https://streamlabs.com/api/v1.0/alerts/send_test_alert"

Upvotes: 2

Related Questions