paho.mqtt.golangからBeebotteに接続する

BeebotteのMQTT channelに接続するためには、Channel Tokenが必要。 これをpaho.mqtt.golangから指定するためには、 SetUsername関数にtoken:CAHNNEL_TOKENの形で渡せばいい。

opts := mqtt.NewClientOptions()
opts.AddBroker("ssl://mqtt.beebotte.com:8883/CAHNNNEL/TOPIC")
opts.SetUsername("token:CHANNEL_TOKEN")
client := mqtt.NewClient(opts)
...

経緯

Google HomeからRaspberry Piで動いているアプリケーションを呼び出すために、 Beebotteが提供するMQTTを使用することにした。

アプリケーションを書くのにはGolangを使いたい。 MQTTの実装としてpaho.mqtt.golangというパッケージを利用する。

https://github.com/eclipse/paho.mqtt.golang

上記の通りMQTT channelに接続するためには、Channel Tokenが必要なのだが、 これをpaho.mqtt.golangを使う場合にどうやって使うのかが ググってもわからずいろいろ試して最終的にうまく行ったのでメモっておくことにした。