Yoctol / bottender

⚡️ A framework for building conversational user interfaces.
https://bottender.js.org
MIT License
4.2k stars 333 forks source link

[LINE] Cannot get displayName from context.session.user. #904

Open jsdryan opened 3 years ago

jsdryan commented 3 years ago

My code: 2021-06-06_01-29-41

displayName is undefined, and context.session.user has only id and _updatedAt properties. 2021-06-06_01-29-22

How can I get more information about user?

tw0517tw commented 3 years ago

Bottender didn't get profiles from platform automatically now. If you want to get profile from the use, use context.getProfile() explicitly.

https://bottender.js.org/docs/en/api-line-context#profile-api---official-docshttpsdeveloperslinemeendocsmessaging-apireferenceget-profile https://developers.line.biz/en/reference/messaging-api/#get-profile

jsdryan commented 3 years ago

Bottender didn't get profiles from platform automatically now. If you want to get profile from the use, use context.getProfile() explicitly.

https://bottender.js.org/docs/en/api-line-context#profile-api---official-docshttpsdeveloperslinemeendocsmessaging-apireferenceget-profile https://developers.line.biz/en/reference/messaging-api/#get-profile

Thank you! I can get displayName now by using the code:

const { displayName } = await context.getUserProfile();

Instead of:

const { displayName } = context.session.user;

But I'm wondering why author can get displayName from context.session.user: 2021-06-06_14-18-18 https://ithelp.ithome.com.tw/articles/10222978

tw0517tw commented 3 years ago

https://github.com/Yoctol/bottender/releases/tag/v1.0.0

[breaking] rename skipProfile to skipLegacyProfile, and set to true by default

This was a breaking change introduced in v1.0.0. Bottender before v1 will automatically get profile and put that into session.user. That option is disabled by default after v1 release.