none
Node JS ile Office 365 toplantı odalarındaki toplantı bilgilerini çekmek

    Soru

  • Merhaba,

    Node JS kullanarak toplantı verilerini çekmek istiyorum. Bunu normalde EWS ile yapıyordum fakat bu durumda ekstra "Impersonated user" yetkisi gerekiyor ve bu olmadan işlem yapmak istiyorum. İstediğim tam olarak toplantı odasının mailini kullanarak oradaki toplantı verilerini çekmek ve bunu otomatik çekip veri tabanına yazdıracağım. Yani bir tarayıcı açıp oradan OAuth vs. yapılmadan işlem yapılması gerekiyor. Aşağıda C# üzerinden nasıl yaptığıma dair örnek bulunmakta.

    	public void get_rooms()
            {
                ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013);
                service.Credentials = new WebCredentials("user@example.com", "password");
                service.Url = new Uri("https://outlook.office365.com/ews/exchange.asmx");
                service.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, "ROOM_1@example.com");
    
                DateTime startDate = new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 8, 0, 0);
                DateTime endDate = startDate.AddHours(12);
                CalendarFolder calendar = CalendarFolder.Bind(service, WellKnownFolderName.Calendar, new PropertySet());
                CalendarView cView = new CalendarView(startDate, endDate);
                cView.PropertySet = new PropertySet(AppointmentSchema.Subject, AppointmentSchema.Start,
                    AppointmentSchema.End, AppointmentSchema.Organizer,
                    AppointmentSchema.AppointmentState, AppointmentSchema.Id);
                List<string> MailAddress = new List<string>();
                FindItemsResults<Appointment> appointments = calendar.FindAppointments(cView);
                foreach (Appointment appointment_result in appointments)
                {
                    Appointment appointmentDetailed = Appointment.Bind(service, appointment_result.Id,
                        new PropertySet(BasePropertySet.FirstClassProperties)
                        {
                            RequestedBodyType = BodyType.Text
                        });
    
                    foreach (Attendee attendee in appointmentDetailed.RequiredAttendees)
                    {
                        listBox1.Items.Add("Attendee Mail: " + attendee.Address.ToString());
                    }
                    listBox1.Items.Add("Organizer: "appointment_result.Organizer.Name);
                }
            }

    14 Şubat 2018 Çarşamba 12:52

Tüm Yanıtlar

  • Ek olarak Node JS olmak zorunda değil. PHP'de olabilir. Amacım Linux ve Windows ortamlarında çalışabilen bir yazılım oluşturmak. Teşekkürler.
    14 Şubat 2018 Çarşamba 12:58