Xizmat ilovalari
Bu imkoniyat Kengaytirilgan va Optimal tariflarida mavjud. Optimal tarifga o‘tganingizda ilovalarni boshqara olmaysiz — bir oy davomida faqat ularning ro‘yxatini tozalashingiz mumkin bo‘ladi. Oy tugagandan keyin ilova tashkilotdan o‘chiriladi.
Xizmat ilovalari API orqali tashkilotdagi foydalanuvchilar resurslarini boshqarish uchun ishlatiladi. Masalan, ular yordamida siz xatlarning zaxira nusxasini yaratishingiz yoki foydalanuvchi Taqvimida hodisalarni boshqarishingiz mumkin. Jami 20 tagacha xizmat ilovalarini yaratish mumkin.
Diqqat
Ofertaning 3.7-bandiga muvofiq, kirish huquqi yoqilgandan so‘ng, administrator barcha foydalanuvchilarni bu haqda xabardor qilishi va zarur hollarda ularning yozma roziligini olishi shart (agar ular avval rozilik bermagan bo‘lsa).
Xizmat ilovalarini ulash
- 
Tashkilot egasining hisobiga kiring. 
- 
Tashkilotda xizmat ilovalari ro‘yxatini boshqaradigan ilovani ro‘yxatdan o‘tkazing. - 
OAuth ilovasini yaratish sahifasini oching. 
- 
Xizmat nomini kiriting va kerak bo‘lsa, ikonka qo‘shing. 
- 
Ilova platformalari blokida Veb-xizmatlar bandini tanlang. Redirect URI maydonida Debug URL qo‘yish havolasini bosing. 
- 
Ma’lumotlarga kirish bo‘limida tashkilotda xizmat ilovalarini boshqarish uchun zarur bo‘lgan kirish huquqlarini ko‘rsating: - 
ya360_security:service_applications_read— xizmat ilovalari ro‘yxatini o‘qish;
- 
ya360_security:service_applications_write— xizmat ilovalari ro‘yxatini boshqarish (o‘qish va yozish).
 
- 
- 
Aloqa uchun elektron pochta manzilini qo‘shing. Sahifaning pastki qismida Ilova yaratish tugmasini bosing. Ekranda uning tavsifi paydo bo‘ladi. 
- 
ClientID maydonidan ilova identifikatorini nusxalash — bu OAuth tokenini olish uchun kerak bo‘ladi. Kelajakda barcha ilovalaringiz bilan sahifani oauth.yandex.ru/ havolasi orqali ochishingiz mumkin. 
 
- 
- 
OAuth tokenlarini istalgan mos usulda so‘rang. U tashkilotda barcha xizmat ilovalarini ro‘yxatdan o‘tkazish uchun kerak bo‘ladi. Tuzatish OAuth tokenini qo‘lda olish mumkin: - 
Havolani bosing https://oauth.yandex.ru/authorize?response_type=token&client_id=<main_app_client_id><main_app_client_id>o‘rniga 2.6-banddagi ClientID qiymatini qo‘ying.
- 
Agar OAuth token ilovangizga birinchi marta berilsa, avtorizatsiya ekrani ochiladi. Kirishdan keyin Yandex OAuth sizni token sahifasiga yo‘naltiradi. Sinov tokenlari haqida batafsil. 
 
- 
- 
Foydalanuvchilarni xabardor qiling va agar ular avval ruxsat bermagan bo‘lsa, ulardan taklifning 3.7-bandiga muvofiq administratorning resurslarini boshqarishga ruxsat olishini so‘rang. 
- 
So‘rov yordamida xizmat ilovalari funksiyasini faollashtiring: POST https://api360.yandex.net/security/v1/org/<org_id>/service_applications/activate<org_id>o‘rniga tashkilotingiz identifikatorini qo‘ying.
- 
Xizmat ilovasini ro‘yxatdan o‘tkazing. Uning yordamida foydalanuvchilarning vaqtinchalik OAuth tokenlarini olish mumkin. Vaqtinchalik tokenning amal qilish muddati 1 soat. - 
Asosiy ilovani yaratishga o‘xshash tarzda alohida OAuth ilovasini yarating (p. 2). Bu ilovaning ruxsatlar sifatida API so‘rovlarida ishlatiladiganlarini belgilang. 
- 
Tashkilot uchun avvalgi bosqichdagi xizmat ilovasini ishlating. Namunacurl --location \ --request POST 'https://api360.yandex.net/security/v1/org/<org_id>/service_applications' \ --header 'Authorization: OAuth <owner_token_to_manage_service_app>’ \ --header 'Content-Type: application/json' \ --data-raw '{ \ "applications": [ \ { \ "id": “<OAuth_service_app_client_id>”, \ "scopes": [ \ "cloud_api:disk.app_folder", \ "cloud_api:disk.read", \ "cloud_api:disk.write", \ "cloud_api:disk.info" \ ] \ } \ ] \ }'Kodga vazifa qo‘yasiz: - 
<org_id>— tashkilotingiz identifikatori;
- 
<owner_token_to_manage_service_app>— 3-banddagi OAuth-token;
- 
<OAuth_service_app_client_id>— ClientID 6.1 p dan xizmat ilovasi.
 
- 
- 
Ilova xizmat sifatida to‘g‘ri kiritilganini tekshiring. Namunacurl --location \ --request GET 'https://api360.yandex.net/security/v1/org/<org_id>/service_applications' \ --header 'Authorization: OAuth <owner_token_to_manage_service_app>'
 Boshqa xizmat ilovalarini ulash uchun 6-banddagi qadamlarni takrorlang. 
- 
- 
Vaqtinchalik foydalanuvchi tokenini oling. Buni API so‘rovi yordamida amalga oshirish mumkin: POST /token HTTP/1.1 Host: http://oauth.yandex.ru Content-type: application/x-www-form-urlencodedNamunacurl --location \ --request POST 'https://oauth.yandex.ru/token' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=urn:ietf:params:oauth:grant-type:token-exchange' \ --data-urlencode 'client_id=<OAuth_service_app_client_id>' \ --data-urlencode 'client_secret=<OAuth_service_app_client_secret>' \ --data-urlencode 'subject_token=<user_id>' \ --data-urlencode 'subject_token_type=urn:yandex:params:oauth:token-type:uid'yoki curl --location --request POST 'https://oauth.yandex.ru/token' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=urn:ietf:params:oauth:grant-type:token-exchange' \ --data-urlencode 'client_id=<OAuth_service_app_client_id>' \ --data-urlencode 'client_secret=<OAuth_service_app_client_secret>' \ --data-urlencode 'subject_token=<user_email>' \ --data-urlencode 'subject_token_type=urn:yandex:params:oauth:token-type:email'Kodga vazifa qo‘yasiz: - 
<OAuth_service_app_client_id>— ClientID 6.1 p dan xizmat ilovasi.
- 
<OAuth_service_app_client_secret>— Client secret xizmat ilovasi;
- 
<user_id>— token olinishi kerak bo‘lgan foydalanuvchi identifikatori;
- 
<user_email>—username@domain.ruko‘rinishidagi token olinishi kerak bo‘lgan foydalanuvchining elektron manzili.
 Javob Yandex 360 xizmatlarining API so‘rovlarida ishlatilishi kerak bo‘lgan tokenni o‘z ichiga oladi. 
- 
Xizmat ilovalarining dasturiy ta’minoti API 360 qo‘llanmasida batafsil tavsiflangan.
Foydalanuvchi resurslari bilan ishlash uchun so‘rovlarga misollar
Xizmat ilovalari yordamida olingan vaqt tokenlari API orqali tashkilotdagi ba’zi foydalanuvchi resurslariga murojaat qilish imkonini beradi, masalan, ma’lumotlarni qayta tiklash, audit yoki ma’lumot qidirish uchun.
Yandex Disk
- 
Yandex Drive API fayllar bilan ishlash va ularga kirishni boshqarish uchun mo‘ljallangan. Poligon xizmati orqali Drive API ga so‘rov yuborishingiz mumkin. NamunaXodim diski haqida meta-axborot so‘rovi: curl --request GET 'https://cloud-api.yandex.net/v1/disk' \ --header 'Accept: application/json' \ --header 'Authorization: OAuth <oauth_token>'<oauth_token>o‘rniga 7-banddagi foydalanuvchi vaqt tokenining qiymatini qo‘ying.
Yandex Pochta
- 
Ilovalar OAuth protokoli bo‘yicha Yandex Mail qutilariga kirishi mumkin. OAuth avtorizatsiyasini Yandex Pochta IMAP va SMTP serverlari dastaklaydi. NamunaIMAP protokoli bo‘yicha foydalanuvchining xatlarini hisoblash uchun Python skripti: import imaplib def generate_oauth2_string(username, access_token): auth_string = 'user=%s\1auth=Bearer %s\1\1' % (username, access_token) return auth_string def get_imap_connector(username="<user_email>", token="<oauth_token>"): auth_string = generate_oauth2_string(username, token) imap_connector = imaplib.IMAP4_SSL("imap.yandex.com", 993) imap_connector.authenticate('XOAUTH2', lambda x: auth_string) return imap_connector def get_total_emails(imap_connector): mailboxes = [] ttl_emails = 0 for mailbox in imap_connector.list()[1]: mailboxes.append(mailbox.decode("utf-8").split()[-1].replace('"', '')) for mailbox in mailboxes: try: imap_connector.select(mailbox) resp_code, mail_count = imap_connector.select(mailbox=mailbox, readonly=True) ttl_emails += int(mail_count[0].decode("utf-8")) except imaplib.IMAP4.error: print(f"Folder: {folder} Error reading emails") except ValueError: print(f"Folder: {folder} Error reading emails") user_logout(imap_connector) return ttl_emails get_total_emails(get_imap_connector())Kodga vazifa qo‘yasiz: - <user_email>—- username@domain.ruko‘rinishidagi ma’lumotlar olinishi kerak bo‘lgan foydalanuvchining elektron manzili;
- <oauth_token>— p.7 foydalanuvchining vaqtinchalik tokeni.
 Pochta protokollarining ishlashi haqida batafsil axborotni IMAP tavsifi va SMTP xususiyatidan oling. 
Yandex Taqvim
- 
OAuth tokenlaridan foydalanib, foydalanuvchilarning Yandex Taqvimi bilan CalDAV protokoli orqali o‘zaro aloqada bo‘lish mumkin. Namuna 1Tanlangan foydalanuvchi Taqvimini o‘chirish uchun Python skripti: import caldav def get_principal(username, leg_token): client = caldav.DAVClient(url="https://caldav.yandex.ru/", username=username, password=leg_token) principal = client.principal() return principal my_principal = get_principal("<user_email>", "<oauth_token>") def find_delete_calendar(my_principal, calendar_name="Mening taqvimim"): try: calendar = my_principal.calendar(name=calendar_name) assert calendar print(f"We found an existing calendar with name {calendar_name}, now deleting it") calendar.delete() except caldav.error.NotFoundError: print("Calendar was not found") find_delete_calendar(my_principal)Kodga vazifa qo‘yasiz: - 
<user_email>— foydalanuvchining elektron manziliusername@domain.ruuning uchun ma’lumotlarni olish kerak;
- 
<oauth_token>— p.7 foydalanuvchining vaqtinchalik tokeni.
 Sharh Agar administrator foydalanuvchining taqvimini o‘chirib tashlasa, keyinchalik uni na administrator, na foydalanuvchining o‘zi tiklay olmaydi. Namuna 2Telemost video uchrashuviga havola bilan Taqvimda uchrashuv yaratish so‘rovlari: - 
Yakka tadbir uchun konferensiya. YaratishQabul qilishcurl -v "https://caldav.yandex.ru/calendars/<user_email>/events-default/<event_uid>.ics" \ -H "Authorization: OAuth <oauth_token>" \ -H "Content-type: text/ics" \ -X PUT \ --data-binary " BEGIN:VCALENDAR BEGIN:VEVENT X-TELEMOST-REQUIRED:TRUE DESCRIPTION:Single event UID:<event_uid> DTSTART:20230417T120000Z END:VEVENT END:VCALENDAR"Kodga vazifa qo‘yasiz: - <user_email>—- username@domain.ruko‘rinishidagi ma’lumotlar olinishi kerak bo‘lgan foydalanuvchining elektron manzili;
- <event_uid>— uchrashuv identifikatori va fayl nomlari (masalan,- a5e3e7b0-dd11-11ed);
- <oauth_token>— p.7 foydalanuvchining vaqtinchalik tokeni.
 Muvaffaqiyatli javob namunasi: HTTP/1.1 201 Createdcurl -v "https://caldav.yandex.ru/calendars/<user_email>/events-default/<event_uid>.ics" \ -H "Authorization: OAuth <oauth_token>"Kodga vazifa qo‘yasiz: - 
<user_email>— foydalanuvchining elektron manziliusername@domain.ruuning uchun ma’lumotlarni olish kerak;
- 
<event_uid>— uchrashuv identifikatori va fayl nomlari (masalan,a5e3e7b0-dd11-11ed);
- 
<oauth_token>— p.7 foydalanuvchining vaqtinchalik tokeni.
 Muvaffaqiyatli javob namunasi: HTTP/1.1 200 OK BEGIN:VCALENDAR ... BEGIN:VEVENT DTSTART:20230417T120000Z DTEND:20230417T120000Z SUMMARY:Nomsiz UID:a5e3e7b0-dd11-11ed DESCRIPTION:Link to video conference: https://telemost.yandex.ru/j/78566269088286\n\nSingle event X-TELEMOST-CONFERENCE:https://telemost.yandex.ru/j/78566269088286 ... END:VEVENT END:VCALENDAR
- 
Takrorlanuvchi tadbir uchun konferensiya. YaratishQabul qilishcurl -v "https://caldav.yandex.ru/calendars/<user_email>/events-default/<event_uid>.ics" \ -H "Authorization: OAuth <oauth_token>" \ -H "Content-type: text/ics" \ -X PUT \ --data-binary " BEGIN:VCALENDAR BEGIN:VEVENT X-TELEMOST-REQUIRED:TRUE DESCRIPTION:Weekly event UID:<event_uid> DTSTART:20230411T200000Z RRULE:FREQ=WEEKLY END:VEVENT END:VCALENDAR"Kodga vazifa qo‘yasiz: - 
<user_email>— foydalanuvchining elektron manziliusername@domain.ruuning uchun ma’lumotlarni olish kerak;
- 
<event_uid>— uchrashuv identifikatori va fayl nomlari (masalan,a5e3e7b0-dd11-11ed);
- 
<oauth_token>— p.7 foydalanuvchining vaqtinchalik tokeni.
 Muvaffaqiyatli javob namunasi: HTTP/1.1 201 Createdcurl -v "https://caldav.yandex.ru/calendars/<user_email>/events-default/<event_uid>.ics" \ -H "Authorization: OAuth <oauth_token>"Kodga vazifa qo‘yasiz: - 
<user_email>— foydalanuvchining elektron manziliusername@domain.ruuning uchun ma’lumotlarni olish kerak;
- 
<event_uid>— uchrashuv identifikatori va fayl nomlari (masalan,a5e3e7b0-dd11-11ed);
- 
<oauth_token>— p.7 foydalanuvchining vaqtinchalik tokeni.
 Muvaffaqiyatli javob namunasi: BEGIN:VCALENDAR ... BEGIN:VEVENT RECURRENCE-ID:20230411T200000Z X-TELEMOST-CONFERENCE:https://telemost.yandex.ru/j/39864310386563 DESCRIPTION:Video muloqotga havola: https://telemost.yandex.ru/j/39864310386563\n\nWeekly event ... END:VEVENT BEGIN:VEVENT RRULE:FREQ=WEEKLY;BYDAY=TU;INTERVAL=1 DESCRIPTION:Video muloqotga havola: https://telemost.yandex.ru/j/39864310386563\n\nWeekly event ... END:VEVENT
- 
 Taqvimda tadbir yaratish yoki o‘zgartirish uchun PUT-so‘rov yuborilganda, mijozX-TELEMOST-REQUIREDxususiyatiniVEVENTkomponentlari ichiga qo‘shadi. Server bunday so‘rovni qabul qilib, Telemostdagi video uchrashuvga havolani yaratadi va uni matn shaklida uchrashuv tavsifiga qo‘shadi.Mijoz uchrashuvlarni o‘qiyotganda server X-TELEMOST-REQUIREDxususiyatini ko‘rsatmaydi. Lekin, agar Telemostdagi video uchrashuvga havola yaratilgan bo‘lsa, bu havolaniX-TELEMOST-CONFERENCEnoodatiy xususiyatida qaytaradi.CalDAV protokoli bilan ishlash haqida batafsil ma’lumotni uning xususiyatlaridan oling. 
- 
Ma’lumotlarga aniq foydalanuvchi nomidan ruxsat beradigan maxsus kod.
Taqvim va manzil kitobi ma’lumotlarini pochta serveri va mijoz o‘rtasida sinxronlash uchun protokol.