An open-source Go OpenID Shared Signals Framework Receiver.
To use this receiver:
simply add the following lines to your Go files:
import {
"github.com/mike-kiser-sp/receiver/pkg"
"github.com/mike-kiser-sp/receiver/pkg/ssf-events"
} // Configure the receiver (do not specify poll callback if polling is not required yet)
receiverConfig := pkg.ReceiverConfig{
TransmitterUrl: "<your transmitter url here>",
TransmitterPollUrl: "<your transmitter poll url here>",
EventsRequested: []events.EventType{0},
AuthorizationToken: "<your access token here>",
PollCallback: nil, // no polling
// push vs poll
TransmitterTypeRfc: pkg.TransmitterPollRFC,
// TransmitterTypeRfc: pkg.TransmitterPushRFC,
// if push (see above), then specify push url . .
// TransmitterPushUrl: "https://shared-signals.dev/ssf/push",
// if poll (see above), specify the Poll Call Back Method
PollCallback: printEvents,
PollInterval: 20,
}
// Initialize the receiver but do not start polling
receiver, err := pkg.ConfigureSsfReceiver(receiverConfig)
if err != nil {
print(err)
} events, err := receiver.PollEvents()
if err != nil {
print(err)
}Use the struct SsfEvent to parse events that you receive. For example:
fmt.Printf("Subject Format: %v\n", event.GetSubjectFormat())
fmt.Printf("Subject: %v\n", event.GetSubject())
fmt.Printf("Timestamp: %d\n", event.GetTimestamp())You can also configure the Receiver to periodically poll the Transmitter.