Patent Publication Number: US-11650772-B2

Title: Server system determining file that needs to be printed, and control method of server system

Description:
BACKGROUND 
     Field 
     The present disclosure relates to determination of a file that needs to be printed out of files uploaded to a conversation service. 
     Description of the Related Art 
     A messaging application for a so-called business chat to exchange messages between a plurality of user terminals via a network has grown in use. Recent years have seen an increase in service in such a messaging application using a so-called bot that automatically returns a message according to a content of a message transmitted by a user on the messaging application. Meanwhile, a printing machine also has had a network communication function along with the widespread use of a cloud service, and a cloud print service, with which the user gives a print instruction from a terminal via the network, has been provided. 
     Coordination between the cloud print service and bot service described above allows the user to give the print instruction to the printing machine from the messaging application on the terminal in a form of interaction with the bot service. In performing print on the messaging application via a print bot, a suggestion for print by the print bot to the user is convenient. 
     However, intervention of the print bot in conversation between users may make a print target file indistinct, for example, in a case where the conversation between the users has continued. 
     Japanese Patent Application Laid-Open No. 2019-164653 discusses a method of identifying a print file by attaching a file desired to be printed to a message received by a chat bot. Japanese Patent Application Laid-Open No. 2019-144697 discusses a method of reprinting a print target file printed in the past. 
     SUMMARY 
     According to an aspect of the present disclosure, a server system that provides a conversation service includes a determination unit configured to determine that a print instruction has been given from a user in the conversation service, and a posting unit configured to, on a basis of the determination unit determining that the print instruction has been given, post on the conversation service a name of a file as a print target candidate, the file being uploaded to the conversation service most recently before the determination unit determines that the print instruction has been given. 
     Further features of the present disclosure will become apparent from the following description of exemplary embodiments with reference to the attached drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG.  1    is a diagram illustrating a system configuration. 
         FIGS.  2 A to  2 E  are diagrams illustrating respective hardware configurations of a client terminal, a printer, and various servers. 
         FIGS.  3 A to  3 D  are diagrams illustrating respective software configurations of the client terminal and various servers. 
         FIG.  4    is a flowchart illustrating an example of processing of a bot service according to a first exemplary embodiment. 
         FIGS.  5 A and  5 B  are flowcharts each illustrating an example of processing of the bot service according to the first exemplary embodiment. 
         FIG.  6    is a flowchart illustrating an example of processing of the bot service according to the first exemplary embodiment. 
         FIGS.  7 A to  7 D  are flowcharts each illustrating an example of processing of the bot service according to the first exemplary embodiment. 
         FIGS.  8 A and  8 B  are flowcharts each illustrating an example of processing of a bot service according to a second exemplary embodiment. 
         FIG.  9    is a flowchart illustrating an example of processing of a bot service according to a third exemplary embodiment. 
         FIG.  10    is a flowchart illustrating an example of processing of a bot service according to a fourth exemplary embodiment. 
         FIG.  11    is a flowchart illustrating an example of processing of a bot service according to a fifth exemplary embodiment. 
         FIG.  12    is a flowchart illustrating an example of processing of a bot service according to a sixth exemplary embodiment. 
         FIG.  13    is a flowchart illustrating an example of processing of a bot service according to a seventh exemplary embodiment. 
         FIG.  14    is a diagram illustrating an example of conversation with the bot service according to the first exemplary embodiment. 
         FIG.  15    is a diagram illustrating an example of conversation with the bot service according to the second exemplary embodiment. 
         FIG.  16    is a diagram illustrating an example of conversation with the bot service according to the third exemplary embodiment. 
         FIG.  17    is a diagram illustrating an example of conversation with the bot service according to the fourth exemplary embodiment. 
         FIG.  18    is a diagram illustrating an example of conversation with the bot service according to the fifth exemplary embodiment. 
         FIG.  19    is a diagram illustrating an example of conversation with the bot service according to the sixth exemplary embodiment. 
         FIG.  20    is a diagram illustrating an example of conversation with the bot service according to the seventh exemplary embodiment. 
         FIGS.  21 A and  21 B  are diagrams each illustrating an example of event metadata information. 
     
    
    
     DESCRIPTION OF THE EMBODIMENTS 
     Exemplary embodiments to implement the present disclosure will be described below with reference to the accompanying drawings. 
     A server in the following description may be configured as a single server or composed of a plurality of servers. While an expression of a server system is also used in the present specification, the server system may be similarly composed of a single server or a plurality of servers. 
       FIG.  1    is a diagram illustrating a configuration of a print bot system according to a first exemplary embodiment. 
     A message application server  101 , a print bot server  102 , a print server  103 , a client terminal  104 , a printer  105  are connected to one another via a network  106 . While  FIG.  1    illustrates one client terminal  104  and one printer  105 , there are typically a plurality of client terminals  104  and a plurality of printers  105  in practice. A messaging application may also be referred to as a conversation service. Each server may be configured such that loads are distributed to a plurality of servers. Conversely, each server may be configured such that one physical server virtually plays a role of the plurality of servers within the server. Each server may be a cloud server placed on cloud. The network  106  is assumed to be a wide area network (WAN) such as the Internet, but may be a closed environment such as a corporate local area network (LAN). The client terminal  104  indicates, for example, a personal computer (PC), a tablet, or a smartphone, and is a terminal directly operated by a user. Freely-selected application software is executable on the client terminal  104 . The printer  105  is a device that actually performs print on physical paper, and converts print data received via the network  106  to image data to perform print. The message application server  101  provides a messaging service such as a chat to the client terminal  104 . The print bot server  102  is registered as a virtual user in the messaging service provided by the message application server  101 , and transmits/receives a message as a normal user does. The print server  103  plays a role in accepting a print instruction and document data from the outside, converting the document data to print data, and thereafter transmitting the print data to the predetermined printer  105  to give a print instruction to the predetermined printer  105 . In a case where the print server  103  is placed in a cloud environment, the print server  103  may be referred to as a cloud print server. A system of determining timing to cause the printer  105  to perform print may be a push-type system that does not require a user&#39;s operation on the printer  105  or a pull-type system of starting print after a user&#39;s operation to start print being performed on the printer  105 . 
     Subsequently, a description will be given of a hardware configuration of each device in the system according to the present exemplary embodiment with reference to  FIGS.  2 A to  2 E . 
       FIG.  2 A  is a block diagram illustrating a hardware configuration of the message application server  101 . The message application server  101  includes a storage unit  214 , a control unit  211 , and a network communication unit  215 . The storage unit  214  indicates a nonvolatile storage device such as a hard disk or a solid state drive (SSD), and can save and rewrite digital data. 
     The control unit  211  is composed of a central processing unit (CPU)  212  and a memory  213 , and controls operations of the whole of the message application server  101 . The CPU  212  develops a program stored in the storage unit  214  to the memory  213  and executes the program. The memory  213  is a main memory of the CPU  212 , and is used as a work area and a temporary storage area to load various kinds of programs. 
     The network communication unit  215  is a device to communicate with the external network  106 , and inputs/outputs digital data from/to an external server, a client terminal, or the like via the network  106 . 
       FIG.  2 B  is a block diagram illustrating a hardware configuration of the print bot server  102 . The print bot server  102  includes a storage unit  224 , a control unit  221 , and a network communication unit  225 . A description of each unit is equivalent to that of the message application server  101  and thus will be omitted. 
       FIG.  2 C  is a block diagram illustrating a hardware configuration of the print server  103 . The print server  103  includes a storage unit  234 , a control unit  231 , and a network communication unit  235 . Similarly, a description of each unit will be omitted. 
       FIG.  2 D  is a block diagram illustrating a hardware configuration of the client terminal  104 . The client terminal  104  includes a display unit  246 , an operation unit  247 , a storage unit  244 , a control unit  241 , and a network communication unit  245 . The display unit  246  is a device, such as a liquid crystal display, to display visual information in real time to the user. The operation unit  247  is a device to accept an input from the user from a keyboard, a mouse, or the like. A device having functions of both the display unit  246  and the operation unit  247 , such as a touch panel, may be used. A description of each of the storage unit  244 , the control unit  241 , and the network communication unit  245  is equivalent to that of the message application server  101  and thus will be omitted. 
       FIG.  2 E  is a block diagram illustrating a hardware configuration of the printer  105 . The printer  105  includes a display unit  256 , an operation unit  257 , a storage unit  254 , a control unit  251 , a network communication unit  255 , and a print unit  258 . The display unit  256  is a device that is attached to the printer  105 , such as a touch panel and a light emitting diode (LED), to display information in real time to the user. The operation unit  257  is a device to accept an input from the user and may include hardware keys such as a numeric keypad in addition to the touch panel. A description of each of the storage unit  254  and the control unit  251  is equivalent to that of the message application server  101  and thus will be omitted. The network communication unit  255  is a device to communicate with the external network  106 , and mainly plays a role of, for example, receiving print data, and transmitting the state of the printer  105  such as an error to an external server or the like. The print unit  258  is a device that performs a sequence of operations of feeding, print, and discharge of paper prepared in a cassette or a tray to perform print processing. A print method is not specifically limited to an electrophotographic method, an inkjet method, or the like. A duplex print unit that is used at the time of discharge and a finishing device that performs stapling processing, punching processing or the like are also included in the print unit  258 . While in the present exemplary embodiment, the description is being given of a single function printer that implements only a print function as an example of the printer  105 , a multi-function printer (a multi-function peripheral) that includes both a scan function and a fax function may be used. 
     A description will be given of a software configuration of each device in the system according to the present exemplary embodiment with reference to  FIGS.  3 A to  3 D . 
       FIG.  3 A  is a block diagram illustrating a software configuration of the client terminal  104 . A messaging application  341  is a software application that plays a role as an interface with the user in a network service such as a business chat. Specifically, the messaging application  341 , for example, accepts an input of a message by the user from the operation unit  247  and transmits the message to the message application server  101 , and accepts the user&#39;s instruction for uploading a file and transmits the file to the message application server  101 . If a message is input from another user to the messaging application  341 , the messaging application  341  receives a notification from the message application server  101  and causes the display unit  246  to display the message in real time. A type of the message may be, in addition to a typical character string and image, a user interface (UI) control component (a component on a graphical user interface (GUI)), such as a button or a combo box, which is transmitted from the print bot server  102  or the like. The messaging application  341  also plays a role in transmitting predetermined action information to the message application server  101  in response to the user&#39;s operation of the UI control component. A file storage  342  is an area for saving a user file prepared in the storage unit  244  of the client terminal  104 , and the user can save a freely-selected file including a file created in another application (not illustrated) in the file storage  342 . The messaging application  341  has authority to access the file storage  342 . 
       FIG.  3 B  is a block diagram illustrating a software configuration of the message application server  101 . A messaging service  311  is a software application that provides a network service such as a business chat. The messaging service  311  exchanges information with the plurality of client terminals  104  and the print bot server  102  connected to the network  106 . The messaging service  311  manages users and exchanges information only with users and bots registered in advance. With this configuration, the messaging service  311  allows confidential information or the like to be shared. In the present exemplary embodiment, the registered users and bots are referred to as members. The messaging service  311  transmits a message received from a member to another member/other members in real time. The messaging service  311  saves a received file in a file storage  312  and notifies the other member(s). The messaging service  311 , when receiving the action information described above, transmits the information to a server or the like registered in advance (e.g., the print bot server  102 ). The file storage  312  is an area prepared in the storage unit  214  of the message application server  101 . Member information managed by the messaging service  311 , and various messages and files received from the members are saved in the file storage  312  and used by the messaging service  311 . 
       FIG.  3 C  is a diagram illustrating a software configuration of the print bot server  102 . A bot service  321  receives a message or the like from the messaging service  311  of the message application server  101 , and executes processing according to a content thereof. Specifically, the bot service  321 , for example, transmits a message to the message application server  101  in collaboration with the print server  103  in response to a print request from the user, and gives a print instruction to the print server  103  in response to the print instruction. A file storage  322  is an area prepared in the storage unit  224  of the print bot server  102 . A print setting and preview image used in a case where the bot service  321  creates a message are saved in the file storage  322  and used by the bot service  321 . 
       FIG.  3 D  is a diagram illustrating a software configuration of the print server  103 . A print service  331  is a service to transmit print data received from the outside to a registered printer (e.g., the printer  105 ) via the network  106  to cause the printer to execute print. A file storage  332  is an area prepared in the storage unit  234  of the print server  103 . User information registered in the print service  331 , information regarding printer(s) of each user, a default print setting for each user, a print setting list, and the like are saved in the file storage  332  and used by the print service  331 . 
     Subsequently, a description will be given of processing of each application or each service according to the present exemplary embodiment with reference to  FIG.  4    to  FIGS.  7 A to  7 D ,  FIG.  14   , and  FIGS.  21 A and  21 B . 
     The processing illustrated in  FIG.  4    is executed by a CPU  222  loading a program of the bot service  321  stored in the storage unit  224  of the print bot server  102  to a memory  223  and executing the program. 
     In step S 401 , the bot service  321  monitors an event transmitted from the message application server  101 . In step S 402 , the bot service  321  determines whether the event has occurred. If the event to be transmitted from the message application server  101  has occurred (YES in step S 402 ), the processing proceeds to step S 403 . In step S 403 , the bot service  321  acquires event metadata information (refer to  FIGS.  21 A and  21 B ) as information of the event. In step S 404 , the bot service  321  determines whether the event that has occurred is a message from the user. For example, there is a method of determination using a specific parameter of print metadata. For example,  FIGS.  21 A and  21 B  each illustrate an example of the event metadata information, and a parameter of “event_type” indicates an event type. In this example, if a value  2101  of the parameter of “event_type” is “message” as illustrated in  FIG.  21 A , the parameter indicates that the event is the message from the user. If the bot service  321  determines that the event is the message from the user (YES in step S 404 ), the processing proceeds to step S 405 . In step S 405 , the bot service  321  determines whether a conversation site is a “group conversation site” at which a plurality of members has conversation or an “individual conversation site” at which a member has one-to-one conversation with the bot. If the bot service  321  determines that the conversation site is the group conversation site (GROUP CONVERSATION SITE in step S 405 ), the processing proceeds to step S 406 . In step S 406 , the bot service  321  executes processing corresponding to the group conversation site. Details will be described below with reference to  FIG.  6   . If the bot service  321  determines that the conversation site is the individual conversation site (INDIVIDUAL CONVERSATION SITE in step S 405 ), the processing proceeds to step S 407 . In step S 407 , the bot service  321  determines from a content of the message that the message is a user response to a bot&#39;s suggestion. For example, the bot service  321  makes determination, for example, based on whether the massage includes a specific word such as “please print”. If the bot service  321  determines that the message from the user is not the user response to the bot&#39;s suggestion (NO in step S 407 ), the processing proceeds to step S 408 . In step S 408 , the bot service  321  executes processing corresponding to the individual conversation site. 
     If the bot service  321  determines that the message from the user is the response to the bot&#39;s suggestion (YES in step S 407 ), the processing proceeds to step S 409 . In step S 409 , the bot service  321  executes processing corresponding to the user response. In a case where the bot&#39;s suggestion is whether to perform print, a response of approval to the suggestion is an instruction for print. Details will be described below with reference to  FIG.  7 A to  7 D . In contrast, if the bot service  321  determines that the event that has occurred is not the message from the user (NO in step S 404 ), the processing proceeds to step S 410 . In step S 410 , the bot service  321  determines whether the event is the user&#39;s operation of a UI control component such as a component indicating “YES” or “NO” arranged on a UI. If determining that the event is not the user&#39;s operation of the UI control component (NO in step S 410 ), the bot service  321  determines that the event is not an event related to the bot service, and ends the processing with respect to the event in the bot service. If determining that the event is the operation of the UI control component (YES in step S 410 ), the processing proceeds to step S 411 . In step S 411 , the bot service  321  determines whether the message is the response to the bot&#39;s suggestion. The bot service  321  makes determination, for example, based on whether an operation of a specific UI control component in the presented message is performed. If determining that the message is not the response to the bot&#39;s suggestion (NO in step S 411 ), the bot service  321  determines that the event is not the event related to the bot service, and ends the processing with respect to the event in the bot service. If the bot service  321  determines that the message is the response to the bot&#39;s suggestion (YES in step S 411 ), the processing proceeds to step S 409 . In step S 409 , the bot service  321  executes the processing corresponding to the user response. 
       FIGS.  5 A and  5 B  each illustrate an example of processing of detecting a print target file performed by the bot service  321  at the group conversation site. 
     Processing in step S 501  of the flow in  FIG.  5 A  is started as a result of determination by the bot service  321  that the conversation site is the group conversation site. 
     In step S 501 , the bot service  321  first analyzes a user message, and determines whether the user message is an explicit print instruction. For example, there is a method of determination using a specific parameter of print metadata and a term in the message. For example,  FIGS.  21 A and  21 B  each illustrate an example of the event metadata information, and the parameter of “event_type” indicates an event type. In this example, a value  2102  of the parameter of “event_type” being “mention” as illustrated in  FIG.  21 B  indicates that the event is a message designating a specific party at the other end. 
     Furthermore, if the message designates the print bot and a term related to print appears in the message in such a manner as “@Print_Bot, please print” as illustrated in a message  1404  in  FIG.  14   , the bot service  321  determines that the message is the explicit print instruction. 
     If the bot service  321  determines that the message is the explicit instruction (YES in step S 501 ), the processing proceeds to step S 502 . In step S 502 , the bot service  321  identifies a user who has given the instruction. Subsequently, in step S 503 , the bot service  321  determines whether a file has been presented in the instructed message (the message in which the print instruction is determined to have been described). The file having been presented means that an identifier, such as a file name, which can uniquely identify the file (only needs to be an identifier that can uniquely identify the file desired to be printed, out of the plurality of files uploaded in the conversation service, and is not necessarily a globally unique identifier), has been described by the user. If the file has been presented (YES in step S 503 ), the processing proceeds to step S 504 . In step S 504 , the bot service  321  selects the file as the print target. Subsequently, in step S 505 , the bot service  321  designates the identified user, and makes a suggestion for confirming the instruction. A specific example will be described below with reference to  FIG.  7 B . In contrast, if no file has been presented (NO in step S 503 ), the processing proceeds to step S 506 . In step S 506 , the bot service  321  targets the previous message of the instructed message. In step S 507 , the bot service  321  transmits a request for acquiring target message history information to the message application server  101 . In step S 508 , the bot service  321  executes processing of extracting file information (i.e., a file name) from the acquired message history information. A specific example will be described below with reference to  FIG.  5 B . 
       FIG.  5 B  illustrates an example of the processing of extracting the file information. 
     Processing in step S 511  is started as a result of the request being made by the bot service  321  to the message application server  101  for acquiring the target message history information. 
     In step S 511 , the bot service  321  determines whether the acquisition of the message history information from the message application server  101  has succeeded. If the acquisition of the message history information has failed (NO in step S 511 ), the processing proceeds to step S 512 . In step S 512 , the bot service  321  prods the user to present the file. That is, the bot service  321  posts a message to ask the user to describe the file name on the conversation service. 
     Details of file confirmation processing will be described below with reference to  FIG.  7 C . If the acquisition of the message history information has succeeded (YES in step S 511 ), the processing proceeds to step S 513 . In step S 513 , the bot service  321  extracts file information from the message history information. In step S 514 , the bot service  321  determines whether the number of pieces of file information extracted in step S 513  is greater than zero. If the number of pieces of file information is zero (NO in step S 514 ), the processing proceeds to step S 506 . In step S 506 , the bot service  321  targets the next previous message. If the number of pieces of file information is greater than zero (YES in step S 514 ), the processing proceeds to step S 515 . In step S 515 , the bot service  321  saves the file information in the file storage  322  of the print bot server  102 . In step S 516 , the bot service  321  executes the file confirmation processing. That is, the bot service  321  posts a message, on the conversation service, to confirm the file name and confirm that a file to be printed is the file having the file name. With this configuration, in a case where the print instruction has been given in a state without presentation of the file, the bot service  321  identifies a file that has been uploaded before the print instruction is given and that has been uploaded most recently. The bot service  321  confirms that the print to be printed is this file. Details of the file confirmation processing will be described below with reference to  FIG.  7 C . 
     If the acquisition of the message history information has failed (NO in step S 511 ), the processing proceeds to step S 512 . In step S 512 , the bot service  321  prods the user to present the print target file. A specific example will be described below with reference to  FIG.  7 D . 
     If the acquisition of the message history information has succeeded (YES in step S 511 , the processing proceeds to step S 514 . In step S 514 , the bot service  321  determines whether the file has been presented in the message. If no file has been presented in the message (NO in step S 514 ), the processing proceeds to step S 505 . In step S 505 , the bot service targets the next previous message, and continues the acquisition of the message history information and a search for the file. If the file has been presented (YES in step S 514 ), the processing proceeds to steps S 515  and S 516 . In step S 516 , the bot service  321  performs the file confirmation processing to confirm that the file is the print target. Messages  1401  to  1403  in  FIG.  14    each illustrate an example in a case where the file has been presented in the message. Details of the file confirmation processing will be described below with reference to  FIG.  7 C . 
       FIG.  6    illustrates an example of processing corresponding to the user response and executed by the bot service  321 . 
       FIG.  6    illustrates the example in which, in response to the user response, the bot service  321  transmits various kinds of confirmation and prodding and transmits the print instruction and the file to the print server  103 . 
     Processing in step S 601  of the flow in  FIG.  6    is started as a result of determination by the bot service  321  that the event that has occurred is the message or the user response by the operation of the UI control component. 
     In step S 601 , the bot service  321  first determines whether a type of the user response is a response to suggestion for print or a response to the confirmation of the print target file. For example, if a message paired with the UI control component operated by the user indicates the suggestion for print, the bot service  321  determines that the type of the user response is the response to the suggestion for print. If the message paired with the UI control component operated by the user indicates the confirmation of the print target file, the bot service  321  determines that the type of the user response is the response to the confirmation of the print target file. If determining that the type of the user response is the response to the suggestion for print (RESPONSE TO SUGGESTION FOR PRINT in step S 601 ), the processing proceeds to step S 602 . In step S 602 , the bot service  321  determines whether the type of the user response is affirmation or negation. For example, in a case where the user replies “YES” in the message or presses a UI control button indicating “YES”, the bot service  321  determines that the type of the user response is the affirmation. If the user replies “NO” in the message or presses a UI control button indicating “NO”, the bot service  321  determines that the type of the user response is the negation. If the bot service  321  determines that the type of the user response is the affirmation (AFFIRMATION in step S 602 ), the processing proceeds to step S 603 . In step S 603 , the bot service  321  determines whether user authentication has been made with respect to the print server  103 . If the bot service  321  determines that the user authentication has already been performed (YES in step S 603 ), the processing proceeds to step S 604 . In step S 604 , the bot service  321  acquires the print target file from the message application server  101 . 
     Subsequently, in step S 605 , the bot service  321  transmits a print instruction and the afore-mentioned acquired file to the print server  103 . In contrast, if determining that the type of the user response is the negation (NEGATION in step S 602 ), the bot service  321  executes nothing. If determining that the user authentication has not been performed (NO in step S 603 ), the processing proceeds to step S 606 . In step S 606 , the bot service  321  makes the user authentication with respect to the print server  103 . In step S 606 , for example, the bot service  321  makes an inquiry of user authentication about whether the identified user exists to the printer server  103 . Subsequently, in step S 607 , the bot service  321  makes determination about the user authentication of a response from the print server  103 . If the bot service  321  determines that the user authentication has succeeded (SUCCEEDED in step S 607 ), the processing proceeds to step S 604 . In step S 604 , the bot service  321  acquires the print target file from the message application server  101 . Subsequently, in step S 605 , the bot service  321  transmits the print instruction and the afore-mentioned acquired file to the print server  103 . If the bot service  321  determines that the user authentication has failed (FAILED in step S 607 ), the processing proceeds to step S 608 . In step S 608 , the bot service  321  notifies the user that the user authentication has failed. 
     A specific example will be described below with reference to  FIG.  7 A . In contrast, if determining that the type of the user response is the response to the confirmation of the print target file (RESPONSE TO CONFIRMATION OF PRINT TARGET FILE in step S 601 ), the processing proceeds to step S 609 . In step S 609 , the bot service  321  determines whether the type of the user response is affirmation or negation. For example, in a case where the user replies “YES” in the message or presses the UI control button indicating “YES”, the bot service  321  determines that the response is the affirmation. Also in a case where the file has been selected from a drop-down list, the bot service  321  determines that the type of the user response is the affirmation. In a case where the user replies “NO” in the message or presses the UI control button indicating “NO”, the bot service  321  determines that the response is the negation. If determining that the response is the affirmation (AFFIRMATION in step S 609 ), the processing proceeds to step S 610 . In step S 610 , the bot service  321  interprets the file that is a target of the confirmation as a print target candidate. Subsequently, in step S 611 , the bot service  321  performs processing to confirm execution of print with the user. A specific example will be described below with reference to  FIG.  7 B . In contrast, if determining that the type of the user response is the negation (NEGATION in step S 609 ), the processing proceeds to step S 612 . In step S 612 , the bot service  321  determines whether there is a remaining file candidate as the target of the confirmation. If there is no remaining file candidate (NO in step S 612 ), the processing proceeds to step S 615 . In step S 615 , the bot service  321  executes processing to prod the user to present the print target file. A specific example will be described below with reference to  FIG.  7 D . If there is the remaining file candidate (YES in step S 612 ), the processing proceeds to step S 613 . In step S 613 , the bot service  321  selects the next file candidate from a file list. In step S 614 , the bot service  321  executes the file confirmation processing to the user. A specific example will be described below with reference to  FIG.  7 C . 
       FIGS.  7 A to  7 D  illustrate examples of generating and transmitting various messages in/from the bot service  321 . 
       FIG.  7 A  illustrates a more specific example of making notification that the authentication has failed. 
     Processing in step S 701  of the flow in  FIG.  7 A  is started as a result of determination by the bot service  321  that the user authentication has failed. 
     In step S 701 , the bot service  321  generates a message that the user authentication has failed. Subsequently, in step S 702 , the bot service  321  generates UI control components for a user response. For example, the bot service  321  generates buttons such as the “YES” and “NO” buttons as the UI control components. 
     Subsequently, in step S 703 , the bot service  321  combines the generated message and the UI control components and transmits the combined message to the message application server  101 . 
       FIG.  7 B  illustrates a more specific example of suggesting confirmation of execution of print. 
     Processing in step S 711  of the flow in  FIG.  7 B  is started as a result of interpretation of the file as the print target candidate by the bot service  321 . 
     In step S 711 , the bot service  321  first generates a message asking the user to confirm execution of print. Subsequently, in step S 712 , the bot service  321  generates the UI control components for the user response. For example, the bot service  321  generates the buttons such as the “YES” and “NO” buttons as the UI control components. A message  1405  illustrated in  FIG.  14    is an example of combining the message to suggest confirmation of execution of print and the UI control components. Subsequently, in step S 713 , the bot service  321  combines the generated message and the UI control components and transmits the combined message to the message application server  101 . That is, the bot service  321  posts a result of combining the message and UI control components described above on the message application server  101 . 
       FIG.  7 C  illustrates a more specific example of suggesting confirmation of the file. 
     Processing in step S 721  of the flow in  FIG.  7 C  is started as a result of detection of the file as the print target candidate by the bot service  321 . 
     In step S 721 , the bot service  321  first generates a message asking the user to confirm that the file is the print target as described in the message  1405  in  FIG.  14   . Subsequently, in step S 722 , the bot service  321  generates the UI control components for the user response. For example, the bot service  321  generates the buttons such as the “YES” and “NO” buttons as the UI control components, as buttons  1406  illustrated in  FIG.  14   . Subsequently, in step S 723 , the bot service  321  combines the generated message and the UI control components and transmits the combined message to the message application server  101 . 
       FIG.  7 D  illustrates a more specific example of prodding presentation of the file. 
     Processing in step S 731  of the flow in  FIG.  7 D  is started as a result of failure of the bot service  321  in detection of the file as the print target candidate. 
     In step S 731 , the bot service  321  first generates a message prodding presentation of the file as described in a message  1502  in  FIG.  15   . Subsequently, in step S 732 , the bot service  321  generates the UI control components for the user response. For example, the bot service  321  generates the buttons such as the “YES” and “NO” buttons as the UI control components. Subsequently, in step S 733 , the bot service  321  combines the generated message and the UI control components and transmits the combined message to the message application server  101 . 
     As described above, the bot service  321  can detect as a print target file even a file that has been presented during group conversation and embedded in other users&#39; conversation by presenting the user a candidate for the print target file (a name of a candidate file) with reference to the message history information. 
     Since the file exists in the message application server  101  until the user confirms the file as the print target, it is possible to identify the print target file without the need for the print bot side to hold the message and the file. 
     If the file has been already presented at the conversation site, there is no need for the user to present the print target file anew every time, thereby reducing workloads of a user operation and increasing convenience. 
     In the first exemplary embodiment, the description has been given of the example of collecting messages retrospectively message by message, and confirming every detected file with the user. 
     In a second exemplary embodiment, a description will be given of a method of detecting a file retrospectively to the number of messages designated by the user (a predetermined number of messages designated by the user), i.e., with reference to a message history retrospectively. 
     Specific processing according to the present exemplary embodiment will be described with reference to  FIGS.  8 A and  8 B , and  FIG.  15   . 
     Only a difference from the first exemplary embodiment will be described here. Since a system configuration, a hardware/software configuration, and each processing flow are the same as those of the first exemplary embodiment with some exceptions, a description thereof will be omitted. 
       FIGS.  8 A and  8 B  illustrate an example in which the bot service  321  detects a file with reference to the message history retrospectively to the number of messages designated by the user at the group conversation site. 
     Processing in step S 801  of the flow in  FIG.  8 A  is started as a result of determination by the bot service  321  that the conversation site is the group conversation site. 
     Since processing in steps S 801  to S 805  is the same as the processing in steps S 501  to S 505  illustrated in  FIG.  5 A , a description thereof will be omitted. 
     If the bot service  321  determines that no file has been presented in the message (NO in step S 803 ), the processing proceeds to step S 806 . In step S 806 , the bot service  321  determines whether the number of messages for which the message history is referred to is designated in the instructed message. An example of a message designating the number of messages is illustrated as a message  1501  in  FIG.  15   . 
     In the message  1501 , the user designates the number of messages as “@Print_Bot please print. Target message [ 3 ]”. If the number of messages is designated in the instructed message (YES in step S 806 ), the processing proceeds to step S 808 . In step S 808 , the bot service  321  sets the number designated by the user to a threshold n of the number of referred messages. 
     If the number of messages is not designated in the instructed message (NO in step S 806 ), the processing proceeds to step S 807 . In step S 807 , the bot service  321  sets a predetermined default value to the threshold n of the number of referred messages. Subsequently, in step S 809 , the bot service  321  makes a request to the message application server  101  for acquiring the message history information corresponding to the threshold n. In step S 810 , the bot service  321  executes the processing of extracting the file information from the acquired message history information. A specific example will be described below with reference to  FIG.  8 B . 
       FIG.  8 B  illustrates an example of the processing of extracting the file information. 
     Processing in step S 811  is started as a result of the request being made by the bot service  321  to the message application server  101  for acquiring the message history information corresponding to the threshold n. 
     In step S 811 , the bot service  321  determines whether the acquisition of the message history information from the message application server  101  has succeeded. If the acquisition of the message history information has failed (NO in step S 811 ), the processing proceeds to step S 812 . In step S 812 , the bot service  321  prods the user to present the file. 
     Since details of the processing of prodding presentation of the file are the same as those of the processing in  FIG.  7 D , a description thereof will be omitted. If the acquisition of the message history information has succeeded (YES in step S 811 ), the processing proceeds to step S 813 . In step S 813 , the bot service  321  extracts the file information from the message history information. In step S 814 , the bot service  321  determines whether the number of pieces of file information extracted in step S 813  is greater than zero. If the number of pieces of file information is zero (NO in step S 814 ), the processing proceeds to step S 812 . In step S 812 , the bot service  321  prods the user to present the file. If the number of pieces of file information extracted in step S 813  is greater than zero (YES in step S 814 ), the processing proceeds to step S 815 . In step S 815 , the bot service  321  sorts the contents of a print candidate file list in time series. Subsequently, in step S 816 , the bot service  321  saves the file list in the file storage  322  of the print bot server  102 . Subsequently, in step S 817 , the bot service  321  selects a file at the head of the file list as a first candidate. Specifically, the bot service  321  posts names of candidate files in an aligned manner in the descending order from the latest file on the conversation service. At this time, the latest file (a file uploaded to the conversation service most recently) is displayed as the first candidate at the top. A name of a file is displayed in the lower order in the list as the earlier the file has been uploaded to the conversation service. In step S 818 , the bot service  321  executes the file confirmation processing. Since details of the file confirmation processing are the same as those of the processing in step  FIG.  7 C , a description thereof will be omitted. A displayed screen is as illustrated in  FIG.  19   . 
     According to the present exemplary embodiment, the bot service  321  detects the print target file with reference only to the designated number of messages, as described above. 
     If the bot service  321  refers to all the messages, the number of messages may become enormous. In this respect, the bot service  321  can avoid the issue and present the file candidates for the print target promptly to the user. 
     In the second exemplary embodiment, the description has been given of the method of detecting the print target file with reference only to the designated number of messages. 
     In a third exemplary embodiment, a description will be given of a method of detecting the print target file with reference only to messages within a designated period of time. 
     Specific processing according to the present exemplary embodiment will be described with reference to  FIGS.  9  and  16   . 
     Only a difference from the first and second exemplary embodiments will be described here. Since a system configuration, a hardware/software configuration, and each processing flow are the same as those of the first exemplary embodiment with some exceptions, a description thereof will be omitted. 
       FIG.  9    illustrates an example in which the bot service  321  detects a file with reference to a message history in a retrospective period of time designated by the user at the group conversation site. 
     Processing in step S 901  of the flow in  FIG.  9    is started as a result of determination by the bot service  321  that the conversation site is the group conversation site. 
     Since processing in step S 901  to S 905  is the same as the processing in steps S 801  to S 805  illustrated in  FIG.  8 A , a description thereof will be omitted. If the bot service  321  determines that no file has been presented in the instructed message (NO in step S 903 ), the processing proceeds to step S 906 . In step S 906 , the bot service  321  determines whether a period of time for referring to the message history is designated in the instructed message. If the period of time is designated in the instructed message (YES in step S 906 ), the processing proceeds to step S 908 . In step S 908 , the bot service  321  sets the period of time designated by the user to a threshold t of a period of time for referring to messages. An example of a message to designate the period of time is illustrated as a message  1601  in  FIG.  16   . In the message  1601 , the user designates the period of time as “@Print_Bot, please print. Target time [ 24 ]”. If the period of time is not designated in the instructed message (NO in step S 906 ), the processing proceeds to step S 907 . In step S 907 , the bot service  321  sets a predetermined default period of time to the threshold t of the period of time for referring to messages. Subsequently, in step S 909 , the bot service  321  makes a request to the message application server  101  for acquiring the message history information within a period of time corresponding to the threshold t in the past. In step S 910 , the bot service  321  executes the processing of extracting the file information from the acquired message history information. Since a specific example of the processing of extracting the file information is the same as that illustrated in  FIG.  8 B , a description thereof will be omitted. 
     According to the present exemplary embodiment, the bot service  321  detects the print target file with reference only to the messages in the designated period of time. 
     If the bot service  321  refers to all the messages, the number of messages may become enormous. In this respect, the bot service  321  can avoid the issue and present the file candidates for the print target promptly to the user. 
     In the second exemplary embodiment, the description has been given of the method of detecting the print target file with reference only to the designated number of messages. 
     In a fourth exemplary embodiment, a description will be given of a method of detecting the print target file with reference only to a message from a designated user. 
     Specific processing according to the present exemplary embodiment will be described with reference to  FIGS.  10  and  17   . 
     Only a difference from the first and second exemplary embodiments will be described here. Since a system configuration, a hardware/software configuration, and each processing flow are the same as those of the first exemplary embodiment with some exceptions, a description thereof will be omitted. 
       FIG.  10    illustrates an example in which the bot service  321  detects the print target file with reference only to the message from the designated user at the group conversation site. 
     Processing in step S 1001  of the flow in  FIG.  10    is started as a result of determination by the bot service  321  that the conversation site is the group conversation site. 
     Since processing in steps S 1001  to S 1005  is the same as the processing in steps S 801  to S 805  illustrated in  FIG.  8 A , a description thereof will be omitted. 
     If the bot service  321  determines that no file has been presented in the instructed message (NO in step S 1003 ), the processing proceeds to step S 1006 . In step S 1006 , the bot service  321  determines whether a target user for referring to the message history is designated in the instructed message. If the target user is designated in the instructed message (YES in step S 1006 ), the processing proceeds to step S 1008 . In step S 1008 , the bot service  321  sets the designated user to a target user list for referring to the messages. An example of a message to designate the target user is illustrated as a message  1701  in  FIG.  17   . In the message  1701 , the user designates the user as “@Print_Bot, please print. Target user [User B]”. If no specific user is designated in the instructed message (NO in step S 1006 ), the processing proceeds to step  1007 . In step S 1007 , the bot service  321  sets all the users to the target user list for referring to the messages. Subsequently, in step S 1009 , the bot service  321  makes a request for acquiring the message history information corresponding to the user set to the target user list to the message application server  101 . In step S 1010 , the bot service  321  executes the processing of extracting the file information from the acquired message history information. Since a specific example of the processing of extracting the file information is the same as that illustrated in  FIG.  8 B , a description thereof will be omitted. 
     According to the present exemplary embodiment, the bot service  321  detects the print target file with reference only to the message from the designated user, as described above. 
     If the bot service  321  refers to all the messages, the number of messages may become enormous. In this respect, the bot service  321  can avoid the issue and present the file candidates for the print target promptly to the user. 
     In the second exemplary embodiment, the description has been given of the method of detecting the print target file with reference only to the designated number of messages. 
     In a fifth exemplary embodiment, a description will be given of a method of detecting the print target file with reference only to a message including a designated key word. 
     Specific processing according to the present exemplary embodiment will be described with reference to  FIGS.  11  and  18   . 
     Only a difference from the first and second exemplary embodiments will be described here. Since a system configuration, a hardware/software configuration, and each processing flow are the same as those of the first exemplary embodiment with some exceptions, a description thereof will be omitted. 
       FIG.  11    illustrates an example in which the bot service  321  detects the print target file with reference only to the message including the designated key word at the group conversation site. 
     Processing in step S 1101  of the flow in  FIG.  11    is started as a result of determination by the bot service  321  that the conversation site is the group conversation site. 
     Since processing in steps S 1101  to S 1105  is the same as the processing in steps S 801  to S 805  illustrated in  FIG.  8 A , a description thereof will be omitted. 
     If the bot service  321  determines that no file has been presented in the instructed message (NO in step S 1103 ), the processing proceeds to step S 1106 . In step S 1106 , the key word is designated in the instructed message. If the key word is designated in the instructed message (YES in step S 1106 ), the processing proceeds to step S 1108 . In step S 1108 , the bot service  321  sets the key word designated by the user to a key word list. An example of a message to designate the key word is illustrated as a message  1801  in  FIG.  18   . In the message  1801 , the user designates the key word as “@Print_Bot, please print. Target key word [Schedule]”. If no key word is designated in the instructed message (YES in step S 1106 ), the processing proceeds to step  1107 . In step S 1107 , the bot service  321  empties the key word list. Subsequently, in step S 1109 , the bot service  321  determines whether the key word list is empty. If determining that the key word list is empty (YES in step S 1109 ), the processing proceeds to step S 1110 . In step S 1110 , the bot service  321  makes a request for acquiring the message history information corresponding to all the messages to the message application server  101 . If determining that the key word list is not empty (NO in step S 1109 ), the processing proceeds to step S 1111 . In step S 1111 , the bot service  321  makes a request for acquiring the message history information corresponding to the message including the key word in the key word list to the message application server  101 . In step S 1112 , the bot service  321  executes the processing of extracting the file information from the acquired message history information. Since a specific example of the processing of extracting the file information is the same as that illustrated in  FIG.  8 B , a description thereof will be omitted. 
     According to the present exemplary embodiment, the bot service  321  detects the print target file with reference only to the message including the designated key word, as described above. 
     If the bot service  321  refers to all the messages, the number of messages may become enormous. In this respect, the bot service  321  can avoid the issue and present the file candidates for the print target promptly to the user. 
     In the second exemplary embodiment, the description has been given of the method of confirming every detected print target file with the user. 
     In a sixth exemplary embodiment, a description will be given of a method of changing a presentation method to the user in a case where the number of detected print target files is a predetermined number or greater. 
     Specific processing according to the present exemplary embodiment will be described with reference to  FIGS.  12  and  19   . 
     Only a difference from the first to third exemplary embodiments will be described here. Since a system configuration, a hardware/software configuration, and each processing flow are the same as those of the first exemplary embodiment with some exceptions, a description thereof will be omitted. 
       FIG.  12    illustrates an example in which the bot service  321  detects a file with reference to the message history in the retrospective predetermined period of time designated by the user, and thereafter changes the presentation method to the user in a case where the number of detected print target files is the predetermined number or greater. 
     Processing in step S 1201  is started as a result of the request being made by the bot service  321  to the message application server  101  for acquiring messages in the designated period of time. 
     Since processing in step S 1201  to S 1206  is the same as the processing in steps S 811  to S 816  illustrated in  FIG.  8 B , a description thereof will be omitted. 
     In step S 1207 , after storing the file list in the file storage  322  of the print bot server  102  in step S 1206 , the bot service  321  determines whether the number of candidate files is a predetermined threshold X or greater. If the number of candidate files is less than the predetermined threshold X (NO in step S 1207 ), the processing proceeds to step S 1209  and S 1210 . In this case, the processing is the same as the processing in steps S 817  and S 818  in  FIG.  8 B , and thus a description thereof will be omitted. If the number of candidate files is the predetermined threshold X or greater (YES in step S 1207 ), the processing proceeds to step S 1208 . In step S 1208 , the bot service  321  generates a UI control component of a drop-down list, as illustrated as a drop-down list  1901  in  FIG.  19   . In step S 1210 , the bot service  321  confirms the file with the user. Since details of the file confirmation processing are the same as those in step S 818  illustrated in  FIG.  8 B , a description thereof will be omitted. 
     If the number of candidate files is less than the predetermined threshold X (NO in step S 1207 ), the processing proceeds to step S 1209  and S 1210 . In this case, the processing is the same as the processing in steps S 817  and S 818 , and thus a description thereof will be omitted. 
     According to the present exemplary embodiment, the bot service  321  changes the presentation method to the user in the case where the number of detected print target files is the predetermined number or greater. 
     With this configuration, in a case where the number of detected candidates is large, the bot service  321  can avoid presentation of an unnecessary message from the print bot, and present the file candidates for the print target promptly to the user. 
     In the sixth exemplary embodiment, the description has been given of the method of changing the presentation method to the user in the case where the number of detected print target files is the predetermined number or greater. 
     In a seventh exemplary embodiment, a description will be given of a method of lowering a presentation rank in a case where there is a printed file in detected print target files. 
     Specific processing according to the present exemplary embodiment will be described with reference to  FIGS.  13  and  20   . 
     Only a difference from the first, second, and sixth exemplary embodiments will be described here. Since a system configuration, a hardware/software configuration, and each processing flow are the same as those of the first exemplary embodiment with some exceptions, a description thereof will be omitted. 
       FIG.  13    illustrates an example in which the bot service  321 , after detecting the file, changes the presentation rank in a case where there is the printed file. 
     Processing in step S 321  of the flow in  FIG.  13    is started as a result of the request being made by the bot service  321  to the message application server  101  for acquiring messages within the predetermined period of time. 
     Since processing in steps S 1301  to S 1305  is the same as the processing in steps S 811  to S 815  illustrated in  FIG.  8 B , a description thereof will be omitted. 
     In step S 1306 , after sorting the contents of the print candidate file list in time series in step S 1305 , the bot service  321  moves the printed file, which has been printed by the user in the past, to the bottom of the print candidate file list, and lowers a rank of presentation to the user as illustrated in a drop-down list  2001  in  FIG.  20   . Examples of a method of determining a file as the printed file include a method by which the bot service  321  holds a file name list in the file storage of the bot and a method by which the bot service  321  makes an inquiry to the print server. Subsequently, in step S 1307 , the bot service  321  stores the file list in the file storage  322  of the print bot server  102 . Since processing in steps S 1308  to S 1311  is the same as the processing in steps S 1207  to S 1210  illustrated in  FIG.  12   , a description thereof will be omitted. 
     According to the present exemplary embodiment, the bot service  321  lowers the rank of presentation as the print candidate file to the user in the case where the file is the printed file. 
     With this configuration, the bot service  321  can avoid waste of performing redundant print, and increase the user&#39;s convenience. 
     OTHER EMBODIMENTS 
     Embodiment(s) of the present disclosure can also be realized by a computer of a system or apparatus that reads out and executes computer executable instructions (e.g., one or more programs) recorded on a storage medium (which may also be referred to more fully as a ‘non-transitory computer-readable storage medium’) to perform the functions of one or more of the above-described embodiment(s) and/or that includes one or more circuits (e.g., application specific integrated circuit (ASIC)) for performing the functions of one or more of the above-described embodiment(s), and by a method performed by the computer of the system or apparatus by, for example, reading out and executing the computer executable instructions from the storage medium to perform the functions of one or more of the above-described embodiment(s) and/or controlling the one or more circuits to perform the functions of one or more of the above-described embodiment(s). The computer may comprise one or more processors (e.g., central processing unit (CPU), micro processing unit (MPU)) and may include a network of separate computers or separate processors to read out and execute the computer executable instructions. The computer executable instructions may be provided to the computer, for example, from a network or the storage medium. The storage medium may include, for example, one or more of a hard disk, a random-access memory (RAM), a read only memory (ROM), a storage of distributed computing systems, an optical disk (such as a compact disc (CD), digital versatile disc (DVD), or Blu-ray Disc (BD)™), a flash memory device, a memory card, and the like. 
     While the present disclosure has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions. 
     This application claims the benefit of Japanese Patent Application No. 2019-228216, filed Dec. 18, 2019, which is hereby incorporated by reference herein in its entirety.