How can I get all active streamings in agora.io? - agora.io

I have just started using Agora.io and want to implement it to a project of mine.
Following some tutorials I can already start a streaming as host, and other user can join to it as long as the stream is published.
My problem is I would like to show the join button only when the stream is published and not all the time. Also I will have dynamic channels in the future so Iam looking for a way to get the list of all active channels. How can I do that?

you can use this Restful API to get all the active channels: https://docs.agora.io/en/Interactive%20Broadcast/dashboard_restful_live?platform=All%20Platforms#get-the-project-list-get
When there is at least one user in the channel, the channel is considered as an active channel.

Related

Assigning webhooks to Firebase Messaging "subscribe to topic" event

In my current project I am using the Kreait Firebase PHP SDK to send out push notifications to Android & iOS devices that have subscribed to notifications on named topics. No issues thus far. However, rather than have fixed topic names I would now like to generate topic names based on the current "condition" of the connecting device. The condition could, for example, be a geographic location.
This is not too difficult either and I have modified my app to handle this. However, in order to put the ability to have such autogenerated topics to use I need to know the topic names on my server so I can send out targeted messages via Kreait. I find Google's Firebase documentation a bit dense at times and have not been able to establish whether it is possible to assign webhooks that get called by Firebase whenever a SubscribeToTopic, UnsubscribeFromTopic event occurs.
A simple question - does FCM even offer anything like this capability? If so, any pointers to the relevant documentation would be much appreciated.
There is no public API to get a list of topic names from Firebase, nor is there a way to hook into the subscription mechanism.
Your best bet is to simply make two calls when a user subscribes to a topic: one to Firebase, and one to your own backend API that keeps a list of active topics/conditions.

Sonos API sends too short auth code in return?

Turning to all you smart people out there for help, tips and trix :)
I want to connect my NodeRed instance to the Sonos API to control my speakers in various ways. During the OAUTH process however, after logging in with my username and password for my account, the auth code being sent back to me through my redirect_uri seems to be too short? In the developers' guide the example auth code looks like this:
f10072fa6-2134-4fe1-93fd-ca5b9cffa738
where in my case, I just receive the first part up until the first dash sign. Eg.:f10072fa6
At first I ran the connection through a NetScaler, then I changed to using a Nginx Reverse Proxy thinking that the Netscaler might have truncated the URL (for some very odd reason), but the result turned out the same..
Ideas anyone?
The Authorization code you received is correct. The Authorization code format was recently changed and the documentation needs to be updated to reflect this. This question was also answered in Authorization code has different structure than example code.
Thanks!
-Mark
You can also use nodered-sonos to control your speakers. No need to setup oauth2 and using the cloud based api, if you can also have super fast local control of your speakers.
I'm using a combination of the following tools for total control of the speakers:
MQTT server of your choice in Docker (I'm using emqx)
Sonos2mqtt, my own app to connect sonos to mqtt in docker
Node red with normal mqtt in/out flows.
My Favorite flows:
Join playbar to group if group starts playing
Pause group is playbar leaves group (it leaves if I turn on the TV, that should stop the music)
Play ring sound (on all speakers) if someone presses the doorbell
Announce (text-to-speech) when the backdoor is opened

OpenTok/TokBox: is there a way to limit the number of published streams allowed in a session?

I'm using OpenTok Web Client SDK and OpenTok .NET Server SDK to generate TokBox sessions that are always going to be multiparty conferences with video being published by many.
I'd like to limit the number of streams that can be published and somehow set that as a session property. Right now I know this value - the number of current publishers - in the client side, and I can of course prevent a new user to publish, but I'm running into this scenario where two users try to publish at the same time, and both are accepted. Ideally the user who published the very first of the two should be accepted, so I'm wondering if there is a way to set this property in the TokBox "server side", as a session property, so the server would reject a new publisher if max. reached.
Please notice that I don't have any server state on my own that keeps track of the created sessions nor how many publishers they have, etc.
Thanks!
Adam here from the OpenTok team.
There is no server-side setting available in OpenTok to limit the number of streams allowed. You could do something like I suggest in this answer though. Where you keep track of streamCreated Events and look at the creationTime property and if your stream is the n-th then you unpublish. Or you can forceUnpublish the n-th stream.

Implementing Facebook's Like feature using Google Cloud Messaging

I have a use case to implement a 'like' feature for messages using GCM. One approach that comes to mind is to make each post a 'topic' and then send all likes on a post as a separate GCM message on that topic.
However, in order to achieve this, the client has to register for each topic corresponding to the post that it has loaded on the UI in real time. This brings me to the following questions:
This is approach right?
How long will it take for a client's subscription to a topic to reflect at GCM's end? Same for unsubscription?
Can I get a list of all subscribers to a given topic?

Detect a user's current song in Spotify api

I was wondering if it was possible to detect what song a user is listening to from his/her current active device via the spotify web api.
Thanks.
I know this is an old question, but there is a new beta API endpoint available that supplies this information. It does have some bugs that I've noticed though.
Stations only: If you change stations, you have to restart Spotify to get the API endpoint to update and continue updating.
According to bug reports, it lags behind 20 to 30 minutes at random. I haven't had that problem, so it may be fixed.
GET https://api.spotify.com/v1/me/player/currently-playing
Docs: https://developer.spotify.com/web-api/get-the-users-currently-playing-track/
This is not possible using the web API. If you're writing a Mac app, you can use the Spotify Desktop Client's AppleScript API to access the current track. If the user is scribbling to Last.fm, you can use Last.fm's APIs. Otherwise, this data is not accessible.