내 API 요청이 작업 항목 생성 이벤트에 대한 Rest API를 통한 VSTS ServiceHooks (WebHooks) 만들기가 실패합니다. 해결책을주십시오
로 URL : https://kogul-ceymplon.visualstudio.com/_apis/hooks/subscriptions?api-version=4.1-preview방법 : POST
내용 : " {\"publisherId의 \ "의"응용 프로그램/JSON " \ "EventType \": \ "workitem.created \", \ "ResourceVersion \": \ "1.0-preview.1 \", \ "ConsumerId \": \ "webHooks \", \ " \ "ConsumerInputs \": \ "PublisherInputs \": \ "ProjectId \": \ "d028a77b-50c4-4bdc-943d-6b072799b884 \"}, \ "ConsumerInputs \": {\ "Url \" : \ " https://myservice/newreceiver \ "}}"
헤더 : "1", "의 InnerException": NULL, "메시지"Bearer {accesToken}
내 응답
{ "$ ID가"있는 그대로 " TF400898 : 내부 오류가 발생했습니다. 활동 ID : 31deba9c-369c-4a31-9be3-67af8ce6249e. ","typeName ":"System.Exception, mscorlib ","typeKey ":"예외 ","errorCode ": 0,"eventId ": 0}
코드 :
'using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Add(
new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
ServiceHook hook = new ServiceHook();
hook.PublisherId = "tfs";
hook.EventType = "workitem.created";
hook.ResourceVersion = "1.0-preview.1";
hook.ConsumerId = "webHooks";
hook.ConsumerActionId = "httpRequest";
hook.PublisherInputs = new PublisherInput
{
projectId = "d028a77b-50c4-4bdc-943d-6b072799b884"
};
hook.ConsumerInputs = new ConsumerInput
{
url= "https://myservice/newreceiver"
};
var javaScriptSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
string jsonString = javaScriptSerializer.Serialize(hook);
var request = new HttpRequestMessage(HttpMethod.Post, "https://kogul-ceymplon.visualstudio.com/_apis/hooks/subscriptions?api-version=4.1-preview");
request.Content = new StringContent(jsonString, Encoding.UTF8, "application/json");
string ccc = request.Content.ReadAsStringAsync().Result;
using (HttpResponseMessage response = client.SendAsync(request).Result)
{
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
return responseBody;
}
}'
내 옆에 결함이 될 수 무엇
VSTS 확장으로 서비스 멍청한 소리를 만드나요? 어떻게 AccessToken을 얻습니까? 세부 코드가 뭐니? –
그것은 C#에서 MVC 웹 응용 프로그램입니다. OAuth를 사용하여 acess 토큰을 얻습니다. –
@ starain-MSFT 코드가 질문에 추가되었습니다. –