Апплет WeChat снова изменил важный интерфейс!

Апплет WeChat
Апплет WeChat снова изменил важный интерфейс!

Официальный представитель WeChat опубликовал статью от 24 февраля 2021 г.Небольшой вход в программу, настройка интерфейса, связанная с пользовательской информациейВ уведомлении указано, что возможность интерфейса wx.getUserInfo получать информацию о пользователе будет прекращена в 24:00 28 апреля 2021 года.

Какая настройка уведомлений?

В этом уведомлении есть три основных изменения:

1. Освободите возможность wx.login получать unionid:

Пока разработчик связывает апплет с открытой платформой, он может получить пользовательский unionid, вызвав этот интерфейс. Это позволяет избежать проблемы, связанной с тем, что разработчик должен вызывать интерфейс wx.getUserInfo, чтобы авторизовать пользователя для получения его unionid. Это также расчищает путь для следующей корректировки.

2. Остановить возможность интерфейса wx.getUserInfo получать информацию о пользователе:

Может официальный представитель WeChat тоже понял проблему интерфейса wx.getUserInfo.Дизайн этого интерфейса на самом деле неразумный.Почему? Потому что этот интерфейс делает две вещи: во-первых, это получение информации о пользователе (т. е. псевдоним аватара и т. д.), а во-вторых, этот интерфейс также берет на себя функцию получения unionid пользователя. Это заставляет разработчиков вызывать интерфейс wx.getUserInfo для получения данных нескольких апплетов, официальных учетных записей, мобильных приложений и т. д. Фактическое требование разработчика состоит в том, чтобы получить unionid пользователя (который должен быть информацией, предоставляемой интерфейсом входа), а не информацию об аватаре пользователя, что означает, что этот интерфейс фактически используется неправильно.

3. Используйте интерфейс wx.getUserProfile для получения информации о пользователе:

Как упоминалось выше, из-за неразумного дизайна интерфейса wx.getUserInfo WeChat упразднил этот интерфейс и заменил его на wx.getUserProfile.Функция нового интерфейса предельно ясна: получение информации о пользователе.

Что вы думаете об этой корректировке?

На мой взгляд, эта корректировка полностью прояснила границы между логином и авторизацией небольших программ. Для входа в мини-программу и авторизации, пожалуйста, обратитесь к этим двум статьям:Вход в мини-программу,Авторизация мини-программы. Во-первых, unionid полностью берется из интерфейса wx.login и не смешивается с аватаркой пользователя и прочей информацией, функция логина принадлежит логину, авторизованный аватар берется из интерфейса getUserProfile, а функция авторизации принадлежит интерфейс авторизации. Это реализует принцип, что интерфейс делает только одну вещь. Поэтому с точки зрения дизайна такая корректировка вполне разумна. Конечно, этот процесс настройки также является относительно быстрым, и многие разработчики жаловались на него, возможно, у официалов есть более подходящий подход.

Что должен делать недавно разработанный апплет?

Последняя часть уведомления имеет следующую передовую практику:

После корректировки разработчику достаточно вызватьwx.loginинтерфейс. Если разработчику необходимо отобразить информацию об аватаре и никнейме пользователя в интерфейсе, это можно сделать через компонент, который может отображаться непосредственно в интерфейсе без подтверждения пользователя. В некоторых сценариях (таких как социальные апплеты) разработчику необходимо получить информацию об аватаре и псевдониме пользователя, которую можно вызвать, вызвавИнтерфейс wx.getUserProfile, разработчик должен каждый раз подтверждать пользователя через этот интерфейс, пожалуйста, правильно обрабатывайте время вызова интерфейса и избегайте чрезмерных всплывающих окон, беспокоящих пользователя.

Этот абзац на самом деле написан очень четко.Для небольших программ, которым не нужно использовать другую информацию о пользователе, нет необходимости вызывать интерфейс для получения информации о пользователе.Вы можете напрямую использовать открытые данные для отображения пола вашего аватара.Для справкиЭтот официальный документ. Если вам действительно нужна пользовательская информация других пользователей, например, для выполнения функции комментариев, вам может потребоваться отобразить информацию обо всех комментаторах.В этом случае вы должны получить информацию о пользователе через интерфейс wx.getUserProfile до пользовательских комментариев.

Как изменить старый код?

Как изменить код, который уже находится в сети? Сначала нужно проверить все места, где клиент апплета использует интерфейс wx.getUserInfo, и заменить этот интерфейс на wx.getUserProfile. В то же время проверьте код сервера апплета, чтобы увидеть, используется ли расшифрованное поле unionid из wx.getUserInfo.Если да, оно должно быть совместимым (поскольку wx.getUserProfile не вернет unionid). Если вы хотите получить более подробную информацию, вам также необходимо решить проблемы совместимости версии WeChat.Подробности см.официальная документация.

Справочный проект

Для конкретной реализации, пожалуйста, обратитесь к моему проекту апплета торгового центра.

Адрес опыта проекта:опыт

Код:код