Why do I need MY_DEVICES?

I’m a little unsure as to why MY_DEVICES is needed in Particle.subscribe() when subscribing to a hook-response.

I have a webhook and it’s publishing with Particle.publish(event, data), so that’s a public event, correct? But when I subscribe, with Particle.subscribe(event, handler), the handler isn’t triggered when I publish an event – I need to write Particle.subscribe(event, handler, MY_DEVICES) – but the docs say that you only need MY_DEVICES for private events.

My guess is that since it’s a webhook, some Particle bot is publishing an event privately on my behalf? That sounds sorta, kinda, right, but if somebody could give me a definitive explanation, that’d be great.

Since Particle.subscribe() is unaware of the origin of the even it should subscribe to.

For ease of use and not anticipating how many events will eventually be shooting around on the public event stream Particle has originally opted for making ALL_DEVICES (and PUBLIC for Particle.publish()) the default scope, allowing you to omit the parameter.
Over time this has proven to be suboptimal and hence with 0.8.0 the parameter was made compulsory.

BTW, since your webhook is your it’s just logical to keep the response private too. After all, you could be returning “confidential” data which you may not want be sent on the publich stream.