Log in or register to post comments

We need better VWS documentation

December 28, 2018 - 10:45am #1

Hello,

This is my first post and, unfortunately, it's because of being unable to authenticate to VWS. I don't use PHP and I don't use Java so the samples are of little value to me. Which brings up the first question. Why are the samples not in C#?

The second question, and the real reason I'm here, is why these pages lack so many details, plain examples, and are out of date (e.g. Some errors returned are different than what is listed.)?

https://library.vuforia.com/content/vuforia-library/en/articles/Training/Using-the-VWS-API.html

https://library.vuforia.com/articles/Solution/Using-the-VuMark-Instance-Generation-API

For example, the documentation doesn't say what "Request-Path" is. There should also be an example using real (but no longer valid) access key and secret key.

I spent three hours last night trying to get this to work but continue to get "AuthenticationFailure". I am 99% sure I'm doing everything correctly but surely I'm doing something wrong.

I hope to hear from someone soon! I'm really excited to keep making progress on my app (which is why I spent three hours last night)! :)

We need better VWS documentation

September 10, 2019 - 11:43am #14

Hello @kierenj,

There is a VuMark instance generation sample, called generate_vumark_instance.py, available here: https://developer.vuforia.com/downloads/samples. Check the bottom of the page.

Let us know if this helps. We'll also look into the documentation inconsistencies you've mentioned.

Thanks,

Vuforia Engine Support

We need better VWS documentation

September 8, 2019 - 12:36pm #13

I strongly second the need for some more comprehensive documentation around the VuMark Instance Generation API, please. I'm having exactly the same difficulties giraffeslacks did.

Some issues that are troubling me:

  1. There's some pseudo-code: "Signature = Base64(HMAC-SHA1(server_secret_key, StringToSign ) ) );".  HMAC-SHA1 takes byte arrays as input, so it would be great to be explicit about what kind of byte arrays we're talking. Not least because server_secret_key is a string of hex characters, each pair of which can be converted to a byte. I'm guessing instead we get the UTF8 or ASCII encodings for each hex character? For StringToSign I assume it's UTF8 or ASCII again.
  2. Base64() - is that a "regular" base64 variety, or URL-safe Base64? I assume the former, but it's good to be explicit
  3. Request-Path. We have several suggestions in this thread and from the docs:

The docs say "the entire URL of the request" ... which would be https://vws.vuforia.com/targets/<target-uuid>/instances

They then immediately give a different example: https://vws.vuforia.com/targets/{target-id}/instances/{instance_id}

Then in this forum thread, a message from support says: /targets/

It's also called "Request-Path", which, if we're talking HTTP spec, means the absolute path, not a full URL, and so none of the above: maybe it's /targets/<target-uuid>/instances, or maybe it's /targets/{target-id}/instances/{instance_id}.

Who knows!

4. "md5 hash". An md5 hash is again just a set of bytes. How should it be encoded as a string? It looks like you're after lowercase hex characters, is that right?

5. The "request body example" is invalid JSON. Or.. is that the format you do actually expect?

The problem is, if I make any one of the above choices incorrectly, I just get a 401 response and don't know which tiny detail might be wrong.

I second the call for a worked example (even if it's with an expired/non-usable API key) - showing the exact request to make, the string that needs to be hashed for the signature, the MD5 that's used in the calculations, the signature, everything. That way, you don't need to create examples in lots of languages: we can just work to recreate from the (hopefully) well-explained first principles and examples each step of the way.

I know there are repos all around GitHub - but they don't seem to give examples of the VuMark Instance Generation API. If you could simply share all the details of the implementation, plus a worked example, no-one would have any problems creating a decent client implementation. Please, please, please. And thank you..

Edit: I'd also settle for a working example in any language, for the VuMark Generation API in particular. No sample seems to cover it? At least with that, I can run the sample, debug it, and compare to my own implementation in C#..

Final edit!: I've run through a sample request here, outputting every intermediate stage of every process. It's using completely made-up target ID and access keys, but I wanted to check that, IF they were correct, would my request and signature be correct? https://gist.github.com/kierenj/9d828343e9224073f69325d4745f223b  - if a developer could advise if the request body, headers, signature or md5 hash have been done in the correct way?

We need better VWS documentation

September 3, 2019 - 1:35am #12

Hi @natalieausmeier,

As far as I know you need a Pro License to access the API.

For questions, please reach out to our Sales department.

Thank you.

Vuforia Engine Support

We need better VWS documentation

September 2, 2019 - 4:28pm #11

Hi there, which licenses does provide VuMark Generation API access.

We need better VWS documentation

September 2, 2019 - 12:17am #10

Hi @zelmigreyling

Unfortunately not. the developer license does *not* provide access to API.

Thank you.

Vuforia Engine Support

We need better VWS documentation

September 1, 2019 - 9:28am #9

Hi,

Were you ever able to get the developer license adjusted to also have API access?
I keep getting 403: LicenseCheckFailed.

Thanks!

We need better VWS documentation

January 7, 2019 - 7:31am #8

Hello,

I've raised this issue with our product team to see if we can adjust the Developer license such that it would allow for VuMark VWS API access, as well. Unfortunately, I have no timeline.

Thanks,

Vuforia Engine Support

We need better VWS documentation

January 4, 2019 - 9:26am #7

@medabit

It's true you can create 100 VuMarks but that's only manually through the web portal and, like you said, no API access.

We need better VWS documentation

January 3, 2019 - 2:03pm #6

Hello @giraffeslacks,

I've confirmed with our operations team that you *cannot* access VWS APIs for generation of VuMarks instances using a Developer license.

Thanks,

Vuforia Engine Support

We need better VWS documentation

January 3, 2019 - 7:17am #5

Hello,

Have you tried to access the VuMark generation API with a database under a dev license and it failed? I'm checking to confirm this restriction, but I was under the impression that it would work but with instance generation limits (only 100 can be created for a given database).

I've escalated your request to the sales team. Apologies that they have not responded. Likely the holidays have delayed their response.

Thanks,

Vuforia Engine Support

We need better VWS documentation

January 2, 2019 - 9:17pm #4

Hi medabit,

Thanks for the update. Much appreciated.

Interestingly, I was able to get it working with a PHP sample I found on Github (https://github.com/jacobtabak/curl-vuforia-client). It was much simpler than the official PHP sample and required no 3rd party dependencies (the official PHP sample, IIRC, requires two 3rd party libraries). But, unfortunately, I then found out that the developer license doesn't allow any API access. :( Genereating VuMarks on-demand is a critical component to the app I'm (trying to) build.

I reached out to sales almost two weeks ago but haven't heard from them yet. I doubt I can afford to buy a license but want to know what it costs anyway.

We need better VWS documentation

January 2, 2019 - 3:11pm #3

Hello,

I found a hint in the PHP samples for the correct format of "Request-Path":

private $url    = "https://vws.vuforia.com";

private $requestPath  = "/targets/";

Comparing this to the API documentation, this matches elements from the HTTP POST request URL: https://library.vuforia.com/content/vuforia-library/en/articles/Solution/How-To-Use-the-Vuforia-Web-Services-API.html#How-To-Add-a-Target

https://vws.vuforia.com/targets

Note that the API documentation specifies the URL for each operation type.

Hope this helps.

Thanks,

Vuforia Engine Support

We need better VWS documentation

January 2, 2019 - 3:02pm #2

Hello,

Thanks for the feedback, and apologies for the inconvenience with documentation. Some of the issues you've pointed out will be resolved soon (return codes), and others I have opened tickets to have clarified (Request-Path).

Currently, we only supply VWS samples in three languages: Java, PHP and Python. I will open a request for a C# sample to be created, but this will be dependent upon resources.

I'm looking to get clarification for the correct formatting of the "Request-Path" variable and will respond soon.

Thanks,

Vuforia Engine Support

 

Log in or register to post comments