ユーザーのカレンダーでイベントを更新しようとすると、このエラーが発生します。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 からメソッドを呼び出し、認証イベントからのセッションをパラメータとしてこのメソッドに渡します。