How to use SODA.net and App Token in asp.net-core MVC

0

As per Socradata.com suggest, I have created both and an Application Token and an Application Key.

When I query using a Soda.net Click using the App Token and username and password like this:

  var client = new SodaClient(sodaHost, sodaAppToken, user, pwd);
  var soql = new SoqlQuery().Select("draw_date", "winning_numbers", "mega_ball", "multiplier").Where("draw_date > '2018-01-01'").Order(SoqlOrderDirection.DESC, "draw_date");
  var dataset = client.GetResource<MyClass>(soda4x4);
  var results = dataset.Query<MyClass>(soql);

Or when query using the App Token and App Key like this:

var client = new SodaClient(sodaHost, sodaAppToken, keyId, keySecret);
var soql = new SoqlQuery().Select("draw_date", "winning_numbers", "mega_ball", "multiplier").Where("draw_date > '2018-01-01'").Order(SoqlOrderDirection.DESC, "draw_date");
var dataset = client.GetResource<MyClass>(soda4x4);
var results = dataset.Query<MyClass>(soql);

I get the following error:

System.ArgumentOutOfRangeException
  HResult=0x80131502
  Message=The provided resourceId is not a valid Socrata (4x4) resource identifier.
Parameter name: resourceId
  Source=SODA
  StackTrace:
   at SODA.SodaClient.Query[TRow](SoqlQuery soqlQuery, String resourceId)
   at SODA.Resource1.Query[T](SoqlQuery soqlQuery)
   at NumPicker.Controllers.HomeController.MegaMillions() in C:\Users\ka8kgj\Desktop\NumPicker\NumPicker\Controllers\HomeController.cs:line 45
   at Microsoft.Extensions.Internal.ObjectMethodExecutor.Execute(Object target, Object[] parameters)
   at Microsoft.AspNetCore.Mvc.Internal.ActionMethodExecutor.SyncActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeActionMethodAsync>d__12.MoveNext()

However, when I query anonymously with this client. No error. All is well.

var client = new SodaClient(sodaHost);
var soql = new SoqlQuery().Select("draw_date", "winning_numbers", "mega_ball", "multiplier").Where("draw_date > '2018-01-01'").Order(SoqlOrderDirection.DESC, "draw_date");
var dataset = client.GetResource<MyClass>(soda4x4);
var results = dataset.Query<MyClass>(soql);

Obviously I can not see an issue with the code. Can someone point out what I am missing?

asp.net-mvc
asp.net-core
socrata
soda
asked on Stack Overflow Sep 18, 2019 by JStevens

1 Answer

0

Ok, Here is the answer. It is most embarrassing but I will take the humiliation so that others may not have too..

When you create the app-token on the SOCRATA web site. You get a Key / Secrete pair. When passing the app-token, It is the KEY that should be passed. NOT THE SECRETE !

answered on Stack Overflow Sep 23, 2019 by JStevens

User contributions licensed under CC BY-SA 3.0