Waheed Rafiq
Waheed Rafiq

Reputation: 482

Microsoft Face API 1.0 Error Resource Not Found

I am working on a face recognition project with Microsoft Azure Cognitive services. Not quite sure why I am not able to correct my own JSON Malformed syntax I thought I nail this 6 months ago. I want to create a group name, so I call upon 'Person Group API' and everytime I follow MS example I get errors in my code however in the API testing Console no problems here is my code example borrow from MS site :

 { "error": { "code": "ResourceNotFound", "message": "The requested resource was not found." } }

and the code which is run in Console mode :

static async void CreateGroup()
        {
            string key1 = "YourKey"; 
             // azure the one should work 
            var client = new HttpClient();
            var queryString = HttpUtility.ParseQueryString(string.Empty);

            // Request headers
           client.DefaultRequestHeaders.Add
           ("Ocp-Apim-Subscription-Key", key1);

        var uri = "https://westus.api.cognitive.microsoft.com/face/v1.0/
        persongroups/{personGroupId}?" + queryString;

        HttpResponseMessage response;

        // Request body
        string groupname = "myfriends";

        string body = "{\"name\":\"" + groupname + ","+ "\"}";
        // Request body
        using (var content = new StringContent
        (body, Encoding.UTF8, "application/json"))
        {

            await client.PostAsync(uri, content)
                .ContinueWith(async responseTask =>
                {
                    var responseBody = await responseTask.Result
                    .Content.ReadAsStringAsync();
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine("Response: {0}", responseBody);
                    Console.WriteLine("");

                    Console.WriteLine("Group Created.... ");
                    Console.WriteLine("Hit ENTER to exit...");
                    Console.ReadKey();
                });

            response = await client.PutAsync(uri, content);
            Console.WriteLine("what is this {0}", response.ToString());
            Console.ReadKey();

        }// end of using statement 


    }// end of CreateGroup
    #endregion

I am guess here but I think its my JSON is malformed again and I just don't know what I am doing wrong again this time. According to the site the field name that I require to send over to ms is 'name' : 'userData' is optional.

Upvotes: 2

Views: 5417

Answers (3)

Piyal George
Piyal George

Reputation: 313

In python, simply this worked for me.

ENDPOINT='https://westcentralus.api.cognitive.microsoft.com'

Upvotes: 1

Devanathan.S
Devanathan.S

Reputation: 1472

Faced the similar issue, after adding "/detect" in the uri the issue fixed. See the below

var uri = "https://westus.api.cognitive.microsoft.com/face/v1.0/detect

Also make sure the subscription key is valid.

Upvotes: 7

cthrash
cthrash

Reputation: 2973

Your request url must specify a group ID in place of where you have {personGroupId}. Per the spec the group ID must be:

User-provided personGroupId as a string. The valid characters include numbers, English letters in lower case, '-' and '_'. The maximum length of the personGroupId is 64.

Furthermore, the http verb needs to PUT, whereas you've made a client.PostAsync request. So you'll need to change that to client.PutAsync.

Microsoft provides a client library for C# for the Face API where you can find working C# code.

Upvotes: 3

Related Questions