2016-11-11 18 views
0

で新しいイベントを作成します。私はError 401 Not Authorizedを得た:Office 365のAPI

私はすでにすべてを、以下のコードは、ボタンから実行されているように構成:

//Karim 
string postData = "{\"Subject\": \"Discuss the Calendar REST API\",\"Body\": {\"ContentType\": \"HTML\",\"Content\": \"I think it will meet our requirements!\"},\"Start\": {\"DateTime\": \"2016 - 02 - 02T18: 00:00\",\"TimeZone\": \"Pacific Standard Time\"},\"End\": {\"DateTime\": \"2016 - 02 - 02T19: 00:00\",\"TimeZone\": \"Pacific Standard Time\"}}"; 
string Url = "https://outlook.office.com/api/v2.0/me/events"; 
HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create(Url); 
myHttpWebRequest.Method = "POST"; 

byte[] data = Encoding.ASCII.GetBytes(postData); 

myHttpWebRequest.ContentType = "application/json"; 
myHttpWebRequest.Accept = "application/json"; 
myHttpWebRequest.ContentLength = data.Length; 

Stream requestStream = myHttpWebRequest.GetRequestStream(); 
requestStream.Write(data, 0, data.Length); 
requestStream.Close(); 

HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse(); 

Stream responseStream = myHttpWebResponse.GetResponseStream(); 

StreamReader myStreamReader = new StreamReader(responseStream, Encoding.Default); 

this.Label1.Text = myStreamReader.ReadToEnd(); 

myStreamReader.Close(); 
responseStream.Close(); 

myHttpWebResponse.Close(); 
//End Karim 

私はすでに私は、NuGet、Office 365の開発ツールを構成しVisual Studio 2015を使用してください。

+0

ちょうど2つのコーディングのヒント。 1は、UIコード「this.Label1.Text」とWeb要求ロジックを混在させません。 2. C#キーワード[using](https://msdn.microsoft.com/en-us/library/yh598w02.aspx)を使用する必要があります –

+0

私の回答は役に立ちましたか? –

答えて

0

これらのAPIを要求できるようにするには、要求を認証して承認する必要があります。あなたがそのような要求をしている人のために何らかの情報を提供していないのであれば、本当に誰が "/私"でしょうか?

はあなたがこのようなアクセストークンを取得行う方法については、あなたのC#.NETの呼び出しでこの

request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", "<your access token as string here>"); 

のようなもののようになります。いわゆる認証ベアラを設定することになっている。これを行うために、開始this documentationとなります。