SpeakData/minimarketo

unsupported protocol scheme

Closed this issue · 5 comments

I'm getting error when I'm using the package.

here is my code.

package main
import(
"github.com/SpeakData/minimarketo"
"os"
"log"
"encoding/json"
"fmt"
// "io/ioutil"
// "net/http"
// "net/http/httptest"
"net/url"
)

func main() {
config := minimarketo.ClientConfig{
ID: os.Getenv("ABC"),
Secret: os.Getenv("EFG"),
Endpoint: os.Getenv("XYZ.mktorest.com"), // https://XXX-XXX-XXX.mktorest.com
Debug: true,
}
client, err := minimarketo.NewClient(config)
if err != nil {
log.Fatal(err)
}
path := "/leads.json?"
v := url.Values{
"filterType": {"email"},
"filterValues": {"tester@example.com"},
"fields": {"email"},
}
fmt.Println("before calling ")
response, err := client.Get(path + v.Encode())
if err != nil {
log.Fatal(err)
}
fmt.Println("response received")
if !response.Success {
log.Fatal(response.Errors)
}
var leads []minimarketo.LeadResult
if err = json.Unmarshal(response.Result, &leads); err != nil {
log.Fatal(err)
}
for _, lead := range leads {
fmt.Printf("%+v", lead)
}
}

Try changing "XYZ.mktorest.com" to "https://XYZ.mktorest.com".

It was 6am when I responded without checking your code carefully.
Now as I see your code, you misunderstood the use of os.Getenv.
os.Getenv is to pass environment variables to your program.
If you are not using them, just directly specify id, secret, and endpoint.

	config := minimarketo.ClientConfig{
		ID:      "ABC",
		Secret:   "EFG",
		Endpoint: "https://XXX-XXX-XXX.mktorest.com",
		Debug:    true,
	}

But this is not recommended as you commit configuration into your code.
So, I would recommend using env vars.