بسته Microsoft365R اتصال R را با Outlook، Teams، OneDrive و SharePoint آسان می کند. بیایید با Outlook و Teams شروع کنیم.
اگر داده ها را در R تجزیه و تحلیل می کنید و اطلاعات را از طریق Microsoft 365 به اشتراک می گذارید، یک خبر خوب دارم: یک راه آسان برای اتصال R با Outlook، Teams، OneDrive و SharePoint وجود دارد. بسته Microsoft365R R که توسط تیم Microsoft Azure توسعه یافته است، شامل عملکردهایی برای کار با APIهای Microsoft 365 از R.
در اینجا نحوه ارسال ایمیل Outlook و پیامهای Teams با R را توضیح خواهیم داد.
Microsoft365R در CRAN موجود است، بنابراین میتوانید آن را با install.packages ("Microsoft365R")
نصب کنید.
R را برای کار با Outlook تأیید کنید
اولین قدم این است که R را برای کار با حساب خود تأیید کنید. عملکرد آن به سرویس Microsoft 365 و اینکه در یک حساب تجاری یا شخصی است بستگی دارد.
برای مجوز دادن به یک حساب Outlook سازمانی، برای مثال، بسته Microsoft365R را بارگیری کنید و سپس از تابع get_business_outlook()
آن استفاده کنید:
library(Microsoft365R)
my_outlook <- get_business_outlook()
در کد بالا، یک شیء جدید my_outlook
از کلاس ms_outlook
ایجاد میکنم.
اگر از یک حساب شخصی Outlook استفاده میکنید، به جای آن از تابع get_personal_outlook()
استفاده کنید.
ممکن است با حساب کاری خود با مشکل مواجه شوید و خطای مشاهده کنید که احراز هویت به دلیل خطمشیهای پیکربندی شده توسط سرپرست شما انجام نشد. Vignette احراز هویت Microsoft365R پیشنهاداتی در مورد نحوه برخورد با این موضوع دارد. میتوانید با اجرای تابع پایه R vignette vignette("auth", package = "Microsoft365R")
، خط مشی را مشاهده کنید.
این خط مشی با چند توصیه مفید به صفحه دیگری پیوند میخورد.
توصیههایی برای رسیدگی به مشکلات احراز هویت Microsoft365R.
این شناسه برنامه پررنگ، شناسه رسمی برنامه مایکروسافت است. گاهی اوقات افزودن آن به عنوان آرگومان به تابع احراز هویت به تأیید کمک می کند:
my_outlook <- get_business_outlook(app = "d44a05d5-c6a5-4bbb-82d2-443123722380")
برای تکرار: آن شناسه برنامه به طور خاص چیزی از تنظیمات من نیست. این شناسه رسمی برنامه مایکروسافت است. (و اگر کسی از بخش فناوری اطلاعات شما در این مورد سؤال کند، میتوانید صادقانه توضیح دهید که توصیهها از مستندات تیم Azure خود مایکروسافت آمده است.)
اگر احراز هویت کار کند، یک پنجره مرورگر ظاهر میشود که از شما میخواهد وارد حساب Microsoft خود شوید و برنامه شما با موفقیت احراز هویت میشود.
ارسال ایمیل Outlook با R
کارهای زیادی می توانید با اتصال Outlook جدید خود انجام دهید، از جمله خواندن و حذف ایمیل ها. اما جالب ترین مورد برای من ارسال ایمیل است. برای انجام این کار، با ایجاد یک شی ایمیل با استفاده از روش create_mail()
شی ms_outlook
خود شروع کنید، مانند:
my_email <- my_outlook$create_email("Body text I want in my email",
subject = "Email subject", to = "recipient@email.com")
هنگامی که کد ایجاد یک شی ایمیل را اجرا می کنید، یک ایمیل پیش نویس باید در پوشه Outlook Drafts ذخیره شود.
چند نحو دیگر وجود دارد که می توانید برای ایجاد ایمیل از آنها استفاده کنید. در کد زیر، نماد دلار مانند لوله ای عمل می کند تا چندین روش را به هم زنجیر کند.
my_email <- my_outlook$create_email(content_type = "html")$
set_body("<p>This is my email body <strong>with bold text</strong>.</p>")$
set_subject("My 2nd email subject")$
set_recipients(to = c("recipient1@mail.com", "recipient2@mail.com"))
کد بالا یک شی ایمیل با نوع محتوای HTML ایجاد می کند و از قالب بندی HTML در پیام استفاده می کند. همچنین شامل چندین گیرنده است. ایجاد یک شی ایمیل از این طریق همچنین پیامی ایجاد می کند که در پوشه Outlook Drafts ظاهر می شود.
ایمیل ایجاد شده توسط R و هنوز ارسال نشده در پوشه Outlook Drafts ظاهر می شود.
اگر Microsoft365R را با بسته blastula جفت کنید، می توانید از Markdown به جای HTML خام در متن ایمیل استفاده کنید. می توانید این کار را با بارگیری بسته blastula و سپس ذخیره مقداری Markdown به عنوان یک رشته کاراکتر R انجام دهید. در کد مثال زیر، مقداری Markdown را در متغیری به نام blastula_body_text
ذخیره میکنم.
library(blastula)
blastula_body_text <- "This is my email body with _italics text_. As with usual markdown, **two blank lines** create a new paragraph and two asterisks bold text."
در مرحله بعد، آن رشته کاراکتری را با قالب بندی علامت گذاری به یک شی ایمیل blastula با تابع compose_email()
blastula تبدیل کنید. رشته کاراکتر وارد آرگومان بدنه می شود، اما در تابع md()
blastula پیچیده شده است، بنابراین compose_email()
بداند Markdown در بدنه وجود دارد که باید ارائه شود.< /p>
blastula_email <- compose_email(
body = md(blastula_body_text)
)
در نهایت، یک ایمیل Outlook از ایمیل blastula ایجاد می کنید:
outlook_email_from_blastula <- my_outlook$create_email(blastula_email,
subject = "Markdown with blastula", to = "someone@gmail.com")
در ابتدا نیاز به هر سه مرحله را کمی گیج کننده دیدم. برای خلاصه کردن گردش کار blastula-to-Outlook:
- علامت گذاری خود را در یک رشته کاراکتر ذخیره کنید.
- یک شی ایمیل blastula با
compose_email()
با رشته خود به عنوان اولین آرگومان پیچیده شده درmd()
ایجاد کنید. - شئ ایمیل blastula را با
create_email()
به یک شی ایمیل Outlook تبدیل کنید.
چند کار دیگر وجود دارد که می توانید با اشیاء ایمیل انجام دهید، مانند افزودن پیوست با روش add_attachment()
.
در تئوری، شما همچنین باید بتوانید تصاویر درون خطی را هنگام ارسال ایمیل خود اضافه کنید، اما من موفقیت آمیزی با آن داشتم، بنابراین هنوز نمی توانم آن را توصیه کنم. ! و در زمان نوشتن این مقاله، در حالی که مستندات Microsoft365R گفته بودند که با بسته ایمیل emayili R نیز سازگار است، من نتوانستم آن را به کار بیاندازم. بهروزرسانی: هر دو اکنون کار میکنند، به لطف بازبینی بسته Microsoft365R توسط نویسنده و نگهدارنده بسته Hong Ooi.
از زمان نگارش این مقاله، باید نسخه توسعه یافته Microsoft365R را از GitHub با ریموت نصب کنید::install_github(“Azure/Microsoft365R”); همچنین emayili را از CRAN نصب کنید. یک سند R Markdown را طبق معمول بنویسید که شامل نمودارها و نمودارهای ثابت است (ویجت های HTML مبتنی بر جاوا اسکریپت کار نمی کنند). سپس فایل markdown را به یک فایل HTML با rmarkdown::render() رندر کنید.
یک شی ایمیل emayili با کدهایی مانند
ایجاد کنید
msg <- envelope(
to = "someone@gmail.com",
subject = "My subject",
html = "myfilename.html"
)
جایی که “myfilename.html” فایل HTML ارائه شده شما است.
سپس آن را به یک پیام ایمیل Outlook تبدیل کنید:
msg <- outlook$create_email(msg)
ارسال ایمیل با روش send()
شی ایمیل Outlook برای هر ایمیل Outlook آسان است:
msg$send()
پیام های تیم ها را با R
ارسال کنید
کار با تیمها مشابه کار با Outlook است. با تابع get_team()
احراز هویت کنید، که به نام یا شناسه یکی از تیمهای شما نیاز دارد. مانند Outlook، این ممکن است همیشه در یک محیط سازمانی کار نکند. شناسه برنامه Microsoft خاص دیگری نیز وجود دارد – همچنین در اسناد احراز هویت Microsoft365R ارائه شده است – اگر get_team ("نام یا شناسه تیم")
کار نمیکند، عملکرد احراز هویت را امتحان کنید:
my_team <- get_team("Team name or ID",
app = "04b07795-8ddb-461a-bbee-02f9e1bf7b46"))
اولین آرگومان بالا باید نام یا شناسه تیم خاصی باشد که می توانید از طریق Teams به آن دسترسی داشته باشید. آرگومان دوم، شناسه برنامه، آرگومان مایکروسافت است. همه از همین شناسه برای امتحان این روش احراز هویت استفاده می کنند.
بعد از احراز هویت، با روش get_channel()
یک شئ کانال از شی تیم ایجاد کنید. کد زیر یک شی برای کانال عمومی در تیم من ایجاد می کند.
my_chan <- my_team$get_channel("General")
ارسال یک پیام متنی اولیه به یک کانال، از جمله یک پیوست در صورت تمایل، با استفاده از روش send_message()
شی کانال بسیار ساده است. به عنوان مثال:
my_chan$send_message("Your upcoming weather forecast",
attachments = "images/temperature_forecast.png")
کارکردهای احراز هویت و ارتباط مشابهی برای OneDrive و SharePoint وجود دارد که فایلها را فهرست، آپلود و دانلود میکند. من در تأیید اعتبار با افرادی که در محل کار بودند موفقیت چندانی نداشتم، اما اتصال به حساب شخصی OneDrive بسیار آسان بود.
برای اطلاعات بیشتر در مورد بسته Microsoft365R، به مخزن بسته بروید در GitHub مایکروسافت Azure. و برای نکات R بیشتر، صفحه InfoWorld Do More With R را بررسی کنید.
پست های مرتبط
ارسال ایمیل Outlook و پیام های Teams با R
ارسال ایمیل Outlook و پیام های Teams با R
ارسال ایمیل Outlook و پیام های Teams با R