معرفی
در این سری مقاله، ما بر روی دسترسی به داده های خدمات ابری Office 365 و Microsoft با استفاده از فراخوانی Graph REST API تمرکز می کنیم. در اینجا، در این مقاله، اجازه دهید نحوه دسترسی به رویدادهای تقویم Office 365 Outlook را با کمک Microsoft Graph API ببینیم.
Microsoft Graph دادههای Office 365 و سایر سرویسهای ابری مایکروسافت مانند ایمیل Outlook، تقویم Outlook، OneDrive، وظایف، گروهها، شیرپوینت و غیره را از طریق URL یک نقطه پایانی ( https://graph.microsoft.com ) در معرض نمایش میگذارد.
در مقاله قبلی من، مقدمه اولیه و فرآیند ثبت برنامه برای دسترسی به داده های مایکروسافت گراف را مشاهده کرده اید.
داده ها را می توان با جریان زیر استخراج کرد.
- دریافت رمز دسترسی برای احراز هویت
- دسترسی به داده های خدمات مایکروسافت از طریق گراف API.
رمز دسترسی را بدست آورید
دو راه برای دریافت توکن دسترسی وجود دارد. در اینجا، من فقط بر روی رویکرد واحد تمرکز می کنم. در این رویکرد، رمز دسترسی را با استفاده از URL سرور احراز هویت (https://login.microsoftonline.com/<yourdomain.onmicrosoft.com>/oauth2/authorize) با روش GET دریافت خواهیم کرد.
پارامترهای ارسال شده برای گرفتن توکن عبارتند از
- شناسه مشتری
- نوع پاسخ
- URL منبع
- تغییر مسیر URL
URL ساخته شده را در مرورگر با استفاده از اسکریپت window.location فعال کنید و صفحه به URL تغییر مسیر مشخص شده هدایت می شود. در URL پاسخ، رمز دسترسی در دسترس خواهد بود. URL پاسخ، URL تغییر مسیر خواهد بود که برای تغییر مسیر مشخص شده است.
- function requestToken() {
- var clientId = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx';
- var replyUrl = 'https://yourdomain.sharepoint.com';
- var resource = "https://graph.microsoft.com";
- var authServer = 'https://login.microsoftonline.com/yourdomain.onmicrosoft.com/oauth2/authorize?';
- var responseType = 'token';
- var url = authServer +
- "response_type=" + encodeURI(responseType) + "&" +
- "client_id=" + encodeURI(clientId) + "&" +
- "resource=" + encodeURI(resource) + "&" +
- "redirect_uri=" + encodeURI(replyUrl);
- window.location = url;
- }
رمز دسترسی را از URL پاسخ استخراج کنید. پس از هدایت صفحه، رمز بازیابی می شود. قطعه کد زیر بازیابی توکن را نشان می دهد.
- var token = getParameterByName['access_token'];
- function getParameterByName(name, url) {
- if (!url) url = window.location.href;
- name = name.replace(/[\[\]]/g, "\\$&");
- var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
- results = regex.exec(url);
- if (!results) return null;
- if (!results[2]) return '';
- return decodeURIComponent(results[2].replace(/\+/g, " "));
- }
در تماس AJAX، URL نمودار مورد نیاز را تنظیم کنید. در این مورد، ما سعی می کنیم رویدادهای تقویم کاربر وارد شده را استخراج کنیم، بنابراین URL نمودار رویدادهای تقویم چشم انداز خواهد بود. توکن حامل مجوز (توکن دسترسی) را در ویژگی هدر تنظیم کنید. با استفاده از روش دریافت، به رویدادهای مورد نیاز برای کاربر وارد شده دسترسی پیدا کنید.
نشانی وب نمودار برای دسترسی به رویدادهای کاربر وارد شده https://graph.microsoft.com/v1.0/me/calendar/events خواهد بود.
قطعه زیر استخراج رویدادها را با استفاده از Graph API نشان می دهد.
- $.ajax({
- url: "https://graph.microsoft.com/v1.0/me/messages",
- type: "GET",
- headers: { "Authorization": "Bearer "+token },
- success: function (data) {
- for(var i=0;i<data.value.length;i++){
- // extract the event subject, web link, etc.
- }
- },
- error: function (sender, args) {
- console.log("error");
- }
- });
خلاصه
بنابراین، دسترسی به داده های ابری مایکروسافت را با استفاده از URL نمودار مایکروسافت در شیرپوینت یاد گرفتید. در این نمونه، رویدادهای تقویم Office 365 Outlook بازیابی می شوند. به همین ترتیب، سایر داده های ابری مایکروسافت نیز قابل دسترسی هستند.
در مقاله بعدی نمونه کد کامل استخراج داده های ابری مایکروسافت را مشاهده خواهید کرد.