Autodesk Forge C# Ошибка API создания проблемы, AUTH-010 - PullRequest
0 голосов
/ 11 марта 2020

Я тестирую код создания проблемы (источник: forge-checkmodels-createissues-revit / web / Controllers / BIM360.cs ). Я получил сообщение об ошибке ниже.

У меня вопрос два.

  1. Что такое errorCode: AUTH-010, что не объясняется в developers_guide error_handling, Я проверил настройки «Уровень доступа был установлен на полный доступ», которые находятся в меню «Вопросы» BIM 360 Project Admin Services, и я не мог догадаться о подозрительном «Токен не имеет привилегии для этого запроса».

  2. Не могли бы вы предложить пример кода Github? Или посоветуйте мне дополнительную проверку кода.

Заранее спасибо.

{"Request": {"UserState": null, "AllowedDecompressionMethods": [0,2, 1], "AlwaysMultipartFormData" ложь "JsonSerializer": { "DateFormat": NULL, "RootElement": NULL, "пространство имен": NULL, "ТипСодержимого": "приложение / json"}, "XmlSerializer": { "RootElement": нулевой, "пространство имен": нулевой, "DateFormat": нулевой, "ТипСодержимого": "текст / xml"}, "ResponseWriter": нулевой, "UseDefaultCredentials": ложные, "Параметры": [{» Имя ":" Authorization», "Значение": "Знаменосец eyJhbGciOiJIUzI1NiIsImtpZCI6Imp3dF9zeW1tZXRyaWNfa2V5In0.eyJ1c2VyaWQiOiJVMzlKSldYTlhGOUoiLCJleHAiOjE1ODM5MTc2ODYsInNjb3BlIjpbImRhdGE6cmVhZCJdLCJjbGllbnRfaWQiOiJidmlheEd0R3BFd1pGcWw1dkpsb2k4SUF4a1E0Ym9YRSIsImdyYW50X2lkIjoia0h3R1FWRXZXU3g4MUlvOVFuWU5UdkdjRU94NjBFaWkiLCJhdWQiOiJodHRwczovL2F1dG9kZXNrLmNvbS9hdWQvand0ZXhwNjAiLCJqdGkiOiJFTnFEcmZwaUo0eFdKQm9lNm1DZUV1RFVlZ2VuT2FIUnlPRUpNR3h1UExjakwzYW1nTjRBQ2RTOEdST3Q3NTlLIn0.1VYYXE2ZXcV6Qr2PiGJqMIZNY-Rr2D3EngBVYEcqiX c", "Тип": 3, "ТипСодержимый": ню LL}, { "Имя": "ТипСодержимая", "Значение": "приложение / vnd.api + json", "Тип": 3, "ТипСодержимый": нулевая}, { "Имя": "container_id" , "Значение": "45b8e606-f4e3-4233-A508-cbfb0098d28a", "Тип": 2, "ТипСодержимого": нулевой}, { "Name": "текст / json", "Значение": "{\ "data \": {\ "type \": \ "Issues \", \ "Атрибуты \": {\ "title \": \ "생성 생성 API 테스트 -1 \", \ "description \": \ " 생성 생성 API 테스트 -1 (나는 내용 입니다.) \ ", \" Status \ ": \" open \ ", \" начальная_версия \ ": \" 1 \ ", \" target_urn \ ": \" 1 \ " \ "due_date \": \ "2020-03-12T01: 19: 54.861Z \", \ "assigned_to \": \ "U39JJWXNXF9J \", \ "владелец \": \ "U39JJWXNXF9J \"}}}», "Type": 4, "ContentType": null}, {"Name": "Accept", "Value": "application / json, application / xml, text / json, text / x- json, текст / javascript, текст / xml "," Тип ": 3," ContentType ": null}]," Файлы ": []," Метод ": 1," Ресурс ":" / Issues /v1/containers/{container_id}/quality-issues","RequestFormat":1,"RootElement":null,"OnBeforeDeserialization":{"Method":{"Name":"<.ctor>b__1_0","AssemblyName ":" RestSharp, версия = 106.3.1.0, культура = нейтральная, PublicKeyToke n = 598062e77f915f75 "," ClassName ":" RestSharp.RestRequest + <> c "," Signature ":" Void <.ctor> b__1_0 (RestSharp.IRestResponse) "," Signature2 ":" System.Void <.ctor> b__1_0 (RestSharp.IRestResponse)», "MemberType": 8, "GenericArguments": нулевая}, "Мишень": {}}, "DateFormat": NULL, "XMLNamespace": NULL, "Полномочия": NULL, "Тайм-аут" : 0, "ReadWriteTimeout": 0, "Попытки": 0}, "ContentType": "application / json", "ContentLength": 192, "ContentEncoding": "", "Content": "{\" developerMessage \ ": \"

Token does not have the privilege for this request.

\ ", \" moreInfo \ ": \" https://forge.autodesk.com/en/docs/oauth/v2/developers_guide/error_handling/ \ ", \

"errorCode\": \"AUTH-010\"

}», "StatusCode": 403, "IsSuccessful" ложь "StatusDescription": "Forbidden", "RawBytes": "eyAiZGV2ZWxvcGVyTWVzc2FnZSI6IlRva2VuIGRvZXMgbm90IGhhdmUgdGhlIHByaXZpbGVnZSBmb3IgdGhpcyByZXF1ZXN0LiIsICJtb3JlSW5mbyI6ICJodHRwczovL2ZvcmdlLmF1dG9kZXNrLmNvbS9lbi9kb2NzL29hdXRoL3YyL2RldmVsb3BlcnNfZ3VpZGUvZXJyb3JfaGFuZGxpbmcvIiwgImVycm9yQ29kZSI6ICJBVVRILTAxMCJ9", "ResponseUri": "https://developer.api.autodesk.com/issues/v1/containers/45b8e606-f4e3-4233-a508-cbfb0098d28a/quality-issues", "Сервер": "", "Cookies": [], "Заголовки": [{ "Имя": "Access-Control-Allow-Credentials", "Значение": "истина", "Тип": 3, "ТипСодержимого ": нулевой}, {" Имя ":" Access-Control-Allow-Headers " "Value":" Content-Length, х-объявления-уль-CTX-клиент-ID, х-объявления-уль-CTX-абонент -span-идентификатор, Content-Range, Access-Control-Allow-Origin, Authorization, х-объявления-тест, х-объявления-уль-CTX-кислородно-ID, х-объявления-ACM-телескопы, рентгеновские объявления уль -ctx-голова-пролетный-идентификатор, If-Match, х-объявления-уль-CTX-источник, Accept-Encoding, If-Modified-Since, х-объявления-ACM-имен, Access-Control-Allow-Полномочия, х -ads-ACM-группы, Session-Id, Content-Encoding, рентгеновские объявления уль-CTX-сфера, диапазон, Accept, рентгеновские объявления уль-CTX-рабочий-идентификатор, х-Requested-с, Ожидать, х -объявление s-ACM-чек-группа, If-None-Match, ТипСодержимый, х-CSRF-маркер " "Тип": 3, "ТипСодержимый": нулевая}, { "Имя":" Access-Control-allow- Методы», "Значение": "POST, GET, OPTIONS, HEAD, PUT, DELETE, PATCH", "Тип": 3, "ТипСодержимый": нулевая}, { "Имя": "Access-Control-Allow-Origin" , "Значение": "", "Тип": 3, "ТипСодержимый": нулевая}, { "Name": "Строгий-Transport-Security", "Значение": "макс-возраст = 31536000; IncludeSubdomains " "Тип": 3, "ТипСодержимый": нулевая}, { "Имя": "Connection", "Значение": "держать-жив", "Тип": 3, "ТипСодержимый": нулевая}, {" Имя ":" Content-Length " "Значение": "192", "Тип": 3, "ТипСодержимое": нулевая}, { "Имя": "ТипСодержимое", "Значение":" приложение / json "," Type ": 3," ContentType ": null}, {" Name ":" Date "," Value ":" Wed, 11 Mar 2020 08:59:54 GMT "," Type ": 3," ТипСодержимого ": нулевой}]," ResponseStatus ": 1," ErrorMessage ": нулевой," ErrorException ": нулевой," ProtocolVersion ": {" _ Major ": 1," _ Minor ": 1," _ Сложение ": - 1," _Revision ": - 1}}

    [HttpGet]
    [Route("api/forge/bim360/token/{tokenId}/container/{containerId}/item/{itemId}/version/{versionId}/title/{titleId}/description/{descriptionText}")]
    public async Task<IRestResponse> CreateDocumentIssueAsync(string tokenId, string containerId, string itemId, string versionId, string titleId, string descriptionText)
    {
        dynamic body = new JObject();
        body.data = new JObject();
        body.data.type = "issues";
        body.data.attributes = new JObject();
        body.data.attributes.title = titleId;
        body.data.attributes.description = descriptionText;
        body.data.attributes.status = "open";
        body.data.attributes.starting_version = versionId;
        body.data.attributes.target_urn = itemId;

        //Added by me for test attributes
        body.data.attributes.due_date = "2020-03-12T01:19:54.861Z";
        body.data.attributes.assigned_to = "U39JJWXNXF9J";
        body.data.attributes.owner = "U39JJWXNXF9J";
        //body.data.attributes.ng_issue_subtype_id = "";
        //body.data.attributes.ng_issue_type_id = "";
        //body.data.attributes.root_cause_id = "";
        //body.data.attributes.starting_version = "";
        //body.data.attributes.location_description = "Kitchen";

        //body.data.attributes.pushpin_attributes = new JObject();
        //body.data.attributes.pushpin_attributes.object_id = dbId;
        //body.data.attributes.pushpin_attributes.type = "TwoDVectorPushpin";
        //body.data.attributes.pushpin_attributes.created_doc_version = version;

        RestClient client = new RestClient(BASE_URL);
        RestRequest request = new RestRequest("/issues/v1/containers/{container_id}/quality-issues", RestSharp.Method.POST);
        request.AddHeader("Authorization", "Bearer " + tokenId);
        request.AddHeader("Content-Type", "application/vnd.api+json");
        request.AddParameter("container_id", containerId, ParameterType.UrlSegment);
        request.AddParameter("text/json", Newtonsoft.Json.JsonConvert.SerializeObject(body), ParameterType.RequestBody);

        var res = await client.ExecuteTaskAsync(request);

        return res;
    }

1 Ответ

0 голосов
/ 13 марта 2020

Пожалуйста, убедитесь, что:

  1. Иметь доступ к учетной записи BIM 360 , что, я полагаю, вы делаете
  2. data:read и data:write при создание токена доступа
  3. Включен API BIM 360 при создании приложения

enter image description here

...