Skip to content

moonsense/go-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Moonsense SDK for Go

Go Reference Apache V2 License

Simple Go SDK for the Moonsense Cloud API.

Installation

Install the module using go get:

go get github.com/moonsense/go-sdk

Getting Started

Start by getting an API secret key by navigating to App in Console and creating a token. You will need to save the generated secret key to a secure place.

https://console.moonsense.cloud/dashboard

We recommend exporting the API secret key as an environment variable:

export MOONSENSE_SECRET_TOKEN=...

You can then very easily list sessions and access the granular data:

package main

import (
    "fmt"

    "github.com/moonsense/go-sdk/moonsense"
    "github.com/moonsense/go-sdk/moonsense/config"
)

func main() {
    sdkConfig := config.SDKConfig{
        SecretToken: "<YOUR SECRET_TOKEN>",
    }

    client := moonsense.NewClient(sdkConfig)

    paginatedSession, err := client.ListSessions(config.ListSessionConfig{})
    for {
        if err != nil {
            fmt.Println("Error getting session list")
            fmt.Println(err)
            break
        }

        for _, session := range paginatedSession.Sessions {
            fmt.Printf("SessionId: %s, %s - %s\n", session.SessionId, session.Metadata.Platform.String(), session.CreatedAt.AsTime())
        }

        if paginatedSession.HasMore() {
            paginatedSession, err = paginatedSession.NextPage()
        } else {
            break
        }
    }

    // Fetch features for a specific session. Specifying the 
    // region the session is in will result in a faster lookup
    features, err := client.ListSessionFeatures("<session-id>", "asia-south1.gcp")
	if err != nil {
		fmt.Println("Error fetching session features")
		fmt.Println(err)
		return
	}

	fmt.Println(features)

    // Fetch signals for a specific session. Specifying the 
    // region the session is in will result in a faster lookup
    signals, err := client.ListSessionSignals("<session-id>", "asia-south1.gcp")
	if err != nil {
		fmt.Println("Error fetching session signals")
		fmt.Println(err)
		return
	}

	fmt.Println(signals)
}

Add Journey Feedback

Adding feedback to journeys provides a mechanism for tracking some special details against a given journey. For example, if a journey is determined to contain fraud, the journey can be flagged as fraudulent using Journey Feedback.

   err := client.AddJourneyFeedback(journeyId, &journeysProto.JourneyFeedback{
   	FraudFeedback: &journeysProto.FraudFeedback{
   		IsFraud:     true,
   		ReportedAt:  timestamppb.Now(),
   		FraudReason: "It was fraud because...",
   	},
   })

See example_test.go for further examples.

Terms Of Service

The Moonsense Go SDK is distributed under the Moonsense Terms Of Service.

Support

Feel free to raise an Issue around bugs, usage, concerns or feedback.