В платном сервисе Яндекс 360 невозможно поменять имена пользователей

Яндекс довольно давно предоставляет услугу «почта на домене». Сейчас они накрутили туда бесполезных свистоперделок и называется это все Яндекс 360. Разумеется теперь это не бесплатно, а «всего» от 299₽ за пользователя.

66
реклама
разместить

похоже вместо яндекса скоро почта россии письма отсылать будет :) уже 3 часа туплю с этим API

1. вошёл как юзер с админскими правами.создал приложение там https://oauth.yandex.ru
с
Redirect URI для веб-сервисов
https://oauth.yandex.ru/verification_code
указал галочками все права что позволило
Доступ к портрету пользователя
• Доступ к дате рождения
• Доступ к адресу электронной почты
• Доступ к логину, имени и фамилии, полу
• Доступ к номеру телефона
по ссылке поулучил токен используя id приложения
https://oauth.yandex.ru/authorize?response_type=token&client_id=
2. в программе на вкладке Authorization. указал протокол oAuth2.0 и токен.
3. id организации подсмотрел в левом нижнем углу панели администрирования https://admin.yandex.ru
потому что запрос https://api360.yandex.net/directory/v1/org не работает, потому что видимо Требуется разрешение на чтение данных об организациях которое хз где взять
4. в адресной строке этой же панели нашёл видимо id юзера... uid=
потому что запрос https://api360.yandex.net/directory/v1/org/{orgId}/users/{userId} не работает, потому что видимо Требуется разрешение на чтение данных о сотрудниках. которое хз где взять
....на все get запросы примерно такой ответ
{
"code": 7,
"message": "No required scope",
"details": [
{
"@type": "type.googleapis.com/google.rpc.RequestInfo",
"requestId": "1733254051321395-3539515305422764469",
"servingData": ""
}
]
}
....на patch
user_id: invalid value

не передать словами как я расстроен....

1

Там есть наборы прав
directory:write_users
directory:read_users.
Я поменял по инструкции на https://101primer.ru/t/146/

1

Могу теперь работать в техподдержке яндекса 😊
1. Логинимся в яндексе под админом. Идём именно на https://oauth.yandex.ru/client/new и там создаем приложение.
Заполняем:
a. Имя
Адская хрень
b. Платформа
Веб сервисы
c. Redirect URI
https://oauth.yandex.ru/verification_code
d. Доступ к данным
directory:read_users
directory:write_users
directory:read_organization
directory:write_organization
Полный список прав, тут: https://yandex.ru/dev/api360/doc/ru/access
e. Почта
f. Сохраняемся
g. Отобразиться ClientID – идентификатор приложения
2. Переходим по ссылке предварительно вставив в нее свой ClientID
https://oauth.yandex.ru/authorize?response_type=token&client_id=ClientID
Пару раз была ошибка, что приложения такого не существует, но потом видимо обновилось через пару минут и…. Получили токен.
Токен надо получать новый, после каждого изменения набора прав приложения.
3. Далее можно поиграться в программе для управления API, например Postman: postman.com/downloads. Скачиваем. Устанавливаем. На вкладке Authorization. указали протокол oAuth2.0 и Токен.
a. Через запрос у меня не получилось добыть id_организации. Его подсмотрел в левом нижнем углу панели администрирования https://admin.yandex.ru
b. В адресной строке этой же панели нашёл id_юзера... (uid=12345…) то есть админа. Но уже в Postman сработал GET запрос: https://api360.yandex.net/directory/v1/org/id_организации/users/ вылезет куча хлама, в котором можно найти все id_юзера. А так можно проверить правильность существования юзера: https://api360.yandex.net/directory/v1/org/id_организации/users/id_юзера вылезут данные только на одного юзера
c. Этот PATCH запрос на изменение данных у меня не сработал, где-то ошибка или опечатка…
https://api360.yandex.net/directory/v1/org/id_организации/users/id_юзера
{
"displayName": "Новые данные"
}
d. Поэтому делал в гугле Colab (нужен акаут гугла) https://colab.research.google.com/ как сказано тут: https://teletype.in/@rcair/patch-public-name-yandex360
import requests
api_key = "Токен"
base_url = 'https://api360.yandex.net/directory/v1/org/id_организации/users/id_юзера'
headers = {"Authorization": f"OAuth {api_key}","Content-Type": "application/json"}
update = {"displayName": 'Называйте меня Димка'}
response = requests.patch(f"{base_url}", json=update, headers=headers)
print(response.json())