-
-
Save ToJans/2fc2e225f5c7583d33d0d0a571042576 to your computer and use it in GitHub Desktop.
Example console application that downloads leads from vslweb and dumps it to the console
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using Newtonsoft.Json; | |
using Newtonsoft.Json.Linq; | |
using System; | |
using System.Net.Http; | |
using System.Text; | |
namespace VSL.Examples | |
{ | |
public class Program | |
{ | |
public static void Main(string[] args) | |
{ | |
var client = new AuthorizedHttpClient(username: "a@b.com", password: "xyz"); | |
// request leads for | |
var storage = "vsl"; | |
var tenant = "vsl"; | |
var from = "20170401"; // YYYYMMDD | |
var to = "20170430"; // YYYYMMDD | |
var url = | |
"https://api.virtualsaleslab.com/r/" + | |
storage + "/" + tenant + | |
"/nl/reporting/data/details?From=" + | |
from + "&To=" + to; | |
var json = client.GetStringAsync(url).Result; | |
Console.WriteLine(json); | |
Console.ReadKey(); | |
} | |
/// <summary> | |
/// A http client where the default headers contain the necessary JSON Web token (JWT) in the header. | |
/// </summary> | |
public class AuthorizedHttpClient : HttpClient | |
{ | |
public AuthorizedHttpClient(string username, string password) | |
{ | |
// always accept JSON format | |
base.DefaultRequestHeaders.Add("Accept", "application/json"); | |
var tokenRequestUrl = "https://virtualsaleslab.eu.auth0.com/oauth/ro"; | |
var tokenRequestJSON = JsonConvert.SerializeObject(new | |
{ | |
client_id = "2NGDZHG76TdaNxeupbPZhU4HgPTDBmO0", | |
username = username, | |
password = password, | |
connection = "Username-Password-Authentication", | |
scope = "openid app_metadata" | |
}); | |
var tokenRequestContent = new StringContent(tokenRequestJSON, Encoding.UTF8, "application/json"); | |
// request a JWT (JSON Web Token) | |
var tokenResponseMessage = base.PostAsync(tokenRequestUrl, tokenRequestContent).Result; | |
// parse the json response text | |
string tokenResponseText = tokenResponseMessage.Content.ReadAsStringAsync().Result; | |
var tokenResponse = JObject.Parse(tokenResponseText); | |
// extract the token from the response | |
var jwtToken = tokenResponse["id_token"].ToString(); ; | |
// add the authorization header with the token to the default request headers | |
base.DefaultRequestHeaders.Add("Authorization", "Bearer " + jwtToken); | |
} | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
username="a@b.com" | |
password="pwd" | |
storage="vsl" | |
tenant="vsl" | |
from="20170401" | |
to="20170430" | |
data='{"client_id":"2NGDZHG76TdaNxeupbPZhU4HgPTDBmO0", "username":"' | |
data=$data$username'", "password":"' | |
data=$data$password'", "connection":"Username-Password-Authentication", "scope":"openid app_metadata"}' | |
token=$(curl \ | |
--request POST \ | |
--url 'https://virtualsaleslab.eu.auth0.com/oauth/ro' \ | |
--header 'content-type: application/json' \ | |
--data "$data" \ | |
| grep -Po '"id_token":"[^\"]*' \ | |
| grep -Po '[^\"]*$' ) | |
authheader="Authorization: Bearer $token" | |
url="https://api.virtualsaleslab.com/r/$storage/$tenant/nl/reporting/data/details?From=$from&To=$to" | |
curl -H "$authheader" "$url" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment