Почему при вызове конечной точки api/user/v1/accounts в установке edX не всегда указываются имя и адрес электронной почты?
Вызывая конечную точку api/user/v1/accounts нашей установки edX для некоторых пользователей, я получаю больше информации, чем другие пользователи, однако пользователи определяются аналогично. Есть идеи, что настроено неправильно?
Для сравнения, это то, что ожидается:
{
"username": "xapitest",
"bio": null,
"requires_parental_consent": true,
"name": "Xapi Test",
"secondary_email": null,
"country": null,
"social_links": [],
"is_active": true,
"profile_image": {
"image_url_full": "https://online.xxxedx.com/static/images/profiles/default_500.4215dbe8010f.png",
"image_url_large": "https://online.xxxedx.com/static/images/profiles/default_120.4a5e0900098e.png",
"image_url_medium": "https://online.xxxedx.com/static/images/profiles/default_50.3455a6581573.png",
"image_url_small": "https://online.xxxedx.com/static/images/profiles/default_30.deee7287e843.png",
"has_image": false
},
"extended_profile": [],
"year_of_birth": null,
"level_of_education": null,
"accomplishments_shared": false,
"goals": "",
"language_proficiencies": [],
"gender": null,
"account_privacy": "private",
"mailing_address": "",
"email": "xapitest@xxxedx.com",
"date_joined": "2020-04-27T14:49:58Z"
}
И вот что я получаю с другим пользователем:
{
"username": "Rolrox",
"bio": null,
"accomplishments_shared": false,
"country": "HU",
"social_links": [],
"profile_image": {
"image_url_full": "https://online.xxxedx.com/static/images/profiles/default_500.4215dbe8010f.png",
"image_url_large": "https://online.xxxedx.com/static/images/profiles/default_120.4a5e0900098e.png",
"image_url_medium": "https://online.xxxedx.com/static/images/profiles/default_50.3455a6581573.png",
"image_url_small": "https://online.xxxedx.com/static/images/profiles/default_30.deee7287e843.png",
"has_image": false
},
"time_zone": null,
"language_proficiencies": [],
"account_privacy": "all_users",
"date_joined": "2020-04-28T10:25:59Z"
}
В последнем отсутствует name
а также email
.
1 ответ
Проблема вызвана разрешениями пользователя, которые используются для обработки вызовов xapi.
Когда вы впервые определяете пользователя, по крайней мере, для нас, мы создали эту учетную запись с помощью oauth2. Мы зашли на xyzedx.com/admin/oauth2/client.
Это предоставит вам идентификатор клиента и секрет клиента.
Однако мы не смогли затем управлять разрешениями этого пользователя. Их можно установить на xyzedx.com/admin/auth/user. Там нужно установить:
- Активный: Верно
- Штатный пользователь: Верно
- Разрешения пользователей, выделите все "oauth2|" ( [токен доступа | обновить токен] * [изменить, добавить, удалить]).
Для тестирования мы использовали Postman. Если вы не знаете, как использовать его, когда вам нужен токен доступа, то вот как это делается.
Для следующего примера вызовите на работу:
https://xxxedx.com/api/user/v1/accounts/jbloggs
С помощью метода GET в заголовке HTTP-запроса указывается: - accept: application/json - content-Type: application/json
Затем установите вкладку Авторизация, в частности, выбрав OAuth 2.0
, а также Get new Access Token
.
Здесь вы предоставите учетные данные, полученные из конфигурации EdX Oauth2:
Вам необходимо настроить это, чтобы добавить токен в "Заголовок" (это создаст еще одну запись в вашей таблице "Заголовок"; а затем выберите Use Token
.
Затем вы Send
звонок.