0

ユーザーのカレンダーでイベントを更新しようとすると、このエラーが発生します。MS によると、これに必要なスコープは wl.calendars_update であり、これは私のコードに適切に配置されています。

なぜこれが起こっているのかについて何か考えはありますか?

request_token_unauthorized: Microsoft.Live.LiveConnectException: 指定されたアクセス トークンには、このリソースへのアクセス権がありません。次のスコープのいずれかを持つアクセス トークンが必要です: 'wl.contacts_calendars_update'。

これは例外をスローするコードです(エラーをよりよく確認できるようにスローさせました)

 public void UpdateEvent(LiveConnectSession session)
        {
            //session = MainPage.session;

            var coco = StartDate[0].ToString("0000", null) + "-" + StartDate[1].ToString("00", null) + "-" + StartDate[2].ToString("00", null) + "T" + StartDate[3].ToString("00", null) + ":" + StartDate[4].ToString("00", null) + ":" + StartDate[5].ToString("00", null) + "+00:00";
            var koko = Stuff.ReturnUnixTimeFromInt32Vector(EndDate);
            // GenerateData();

            AppointmentCustom c = new AppointmentCustom
            {
                Location = Where.Text,
                Subject = Subject.Text,
                Withwho = withwho.Text,
                startday = when.Value.Value,
                endday = Untill.Value.Value,
                starthour = StartingWhen.Value.Value,
                endhour = UntillWhen.Value.Value,
                wasuploaded = false



            };

            var calEvent = new Dictionary<string, object>();
            calEvent.Add("name", c.Subject);
            calEvent.Add("description", c.Subject + " with " + c.Withwho + " at " + c.Location);
            calEvent.Add("start_time", coco);
            calEvent.Add("end_time", koko);
            calEvent.Add("location", c.Location);
            calEvent.Add("is_all_day_event", false);
            calEvent.Add("availability", "busy");
            calEvent.Add("visibility", "private");
            LiveConnectClient updateEvent = new LiveConnectClient(session);
            updateEvent.PutCompleted +=
                new EventHandler<LiveOperationCompletedEventArgs>(updateEvent_PutCompleted);
            updateEvent.PutAsync("event.8c8ce076ca27823f.9690899aeeae4e97be18cdc75b644454.3b4985a7bdd24958a5a9aac1e2ad970b", calEvent);
        }






        void updateEvent_PutCompleted(object sender, LiveOperationCompletedEventArgs e)
        {
            if (e.Error == null)
            {

            }
            else
            {
                throw new InvalidOperationException(e.Error.ToString());
            }
        }

これは、メイン画面のユーザー コントロール ポップアップです。MainPage からメソッドを呼び出し、認証イベントからのセッションをパラメータとしてこのメ​​ソッドに渡します。

4

0 に答える 0