User model

It is one of the models that is predefined in a new project and is associated with the users table in the database.

In the conversation flow @user can be called, which is an instance of this model for the user who is chatting.

Location

bot/models/user.rb
class User < ActiveRecord::Base

end

users table schema

id

Secuencial record ID.

psid

The user identification on each platform.

platform

The platform through which the user is chatting.

psid_from_post_comment

The user's ID who has commented on a post on the Fan Page associated with the project.

page_id

Facebook Page's ID

name

User's name.

first_name

User's first name.

last_name

User's last name.

timezone

User's timezone.

locale

User's locale.

last_usage_at

Stores the last time when a message or event was received from the user.

context

The current context of the conversation with the user.

context_params

Stores the parameters from the current context of the conversation with the user.

session_vars

Stores the user's session vars.

last_message_read

Boolean that indicates if the last message sent was read by the user.

created_at

Date and time of record creation.

updated_at

Date and time of the record's last update.

New User Creation

Common Methods and Attributes.

first_time?()

This method returns true if the user has been created current session.

Usage

platform

This attribute returns the user's platform. For example: "messenger", "telegram" or "whatsapp".

Usage

context

Returns the current context of the conversation with the user.

Usage

exit_context()

Exit the user from the current context of the conversation.

Usage

reschedule_message(tag=Symbol, send_at=Time)

Re-Schedule the messages associated with the provided tag.

Usage

scheduled_message?(tag=Symbol)

Returns true if there is a scheduled message associated with the provided tag.

Usage

destroy_scheduled_messages(tag=Symbol)

Deletes the scheduled message associated with the provided tag.

Usage

messenger_recurring_notification_data()

Returns the user's subscription status for Messenger Recurring Notifications

Usage

messenger_recurring_notification?()

Returns true if the subscription to Messenger Recurring Notifications is active.

Usage

vars

This attribute allows saving and retrieving any data within the conversation flow.

Saving data

Retrieving data

Deleting data

Para usar este attributo fuera del flujo de la conversación se necesita llamar a los metodos get_session_vars() y save_session_vars()

set_locale(locale=Symbol)

Set user locale

Usage

Customization Example

Suppose we need to ask the user to leave us their email and we would like to save that information.

To do this we could do the following:

Adding email field in users table.

Editing User model

In the User model we will create the methods that we consider necessary to carry out this operation: in this case we will create one to save the mail and another to verify that it exists.

Testing

We can test this on the console by running kogno c in the terminal

Last updated

Was this helpful?