Google рдкрд░ рдХрд╛рд░реНрд░рд╡рд╛рдЗрдпрд╛рдБ: Google рд╕рд╣рд╛рдпрдХ рдХреЗ рд▓рд┐рдП рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдФрд░ рдлрд╛рдпрд░рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЙрдб рдлрд╝рдВрдХреНрд╢рдВрд╕ рдкрд░ рдПрдХ рд╕рд░рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд▓рд┐рдЦрдирд╛

рдкрд┐рдЫрд▓реЗ рдорд╣реАрдиреЗ рдХреЗ рдЕрдВрдд рдореЗрдВ, Google рд╕рд╣рд╛рдпрдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рд░реВрд╕реА рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдХрд┐ рдорд╛рдирдХ Google рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рд╕реНрдЯреИрдХ рдкрд░ рд╕рд╣рд╛рдпрдХ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ ( рдХрд╛рд░реНрдпреЛрдВ ) рдХреЛ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо Google рдкрд░ рдХрд╛рд░реНрд░рд╡рд╛рдЗрдпреЛрдВ рдореЗрдВ рдПрдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдмрдирд╛рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдореЗрдВ рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рд╕реЗ рдирд┐рдХрд╛рдп рдФрд░ рдЗрд░рд╛рджреЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВ, рдирд┐рдХрд╛рд▓реЗ рдЧрдП рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рд╣реИрдВрдбрд▓рд░ рд▓рд┐рдЦрдирд╛ рд╕реАрдЦреЗрдВ рдФрд░ рдлрд╛рдпрд░рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЙрдб рдлрд╝рдВрдХреНрд╢рдВрд╕ рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВред


рдЕрдВрдЬреАрд░ред 1. рд╕рд╣рд╛рдпрдХ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ред

рд╕рд╣рд╛рдпрдХ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдХреБрдЫ рд╕рд╛рдордЧреНрд░реА рд╣реИ, рдФрд░ рдЙрдкрдХрд░рдг рдФрд░ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХреА рд╕реАрдорд╛ рдореЗрдВ рдХрд╛рдлреА рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╣реИред рдпрд╣ рд▓реЗрдЦ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╣рд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрддрд╛ рд╣реИред рдЖрдЗрдП рдорд╛рдирдХ Google рддрдХрдиреАрдХ рд╕реНрдЯреИрдХ рдкрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рд╕рд╣рд╛рдпрдХ (рдЫрд╡рд┐ 1) рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВ:

  • Google рдкрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ Google рд╕рд╣рд╛рдпрдХ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдордВрдЪ рд╣реИред
  • Dialogflow - NLU рдЗрдВрдЬрди (рдкреНрд░рд╛рдХреГрддрд┐рдХ рднрд╛рд╖рд╛ рд╕рдордЭ), рдкреНрд░рд╛рдХреГрддрд┐рдХ рднрд╛рд╖рд╛рдУрдВ рдФрд░ рдбрд┐рдЬрд╛рдЗрди рд╕рдВрд╡рд╛рджреЛрдВ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ред
  • рдлрд╛рдпрд░рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЙрдб рдлрд╝рдВрдХреНрд╢рдВрд╕ (рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо Firebase рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ) - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЗ рдЬрдЯрд┐рд▓ рддрд░реНрдХ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдФрд░ рддреГрддреАрдп-рдкрдХреНрд╖ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЙрдб рдлрд╝рдВрдХреНрд╢рдВрд╕ред рдлрд╛рдпрд░рдмреЗрд╕ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдФрд░ рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рд╡реЗрдмрд╣реБрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рддрдЪреАрдд рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд╕рд░реНрд╡рд░ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдлрд╛рдпрд░рдмреЗрд╕ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рдФрд░ рдХрднреА-рдХрднреА рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдмреИрдХрдПрдВрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрдиред рдпрд╣ рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рдХреЗ рдЖрд╡рдВрдЯрди, рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдпрд╛ рдкреНрд░рдмрдВрдзрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд┐рдП рдмрд┐рдирд╛, Google рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдкрд░ рд╕реЗрд╡рд╛рдПрдВ рдмрдирд╛рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдПрдХ рдУрд░, рдпрд╣ рдЖрдкрдХреЛ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдкреНрд░рд╢рд╛рд╕рди рдкрд░ рд╕рдордп рдмрд░реНрдмрд╛рдж рдХрд┐рдП рдмрд┐рдирд╛, рд╕реЗрд╡рд╛ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдФрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдЙрддреНрдкрд╛рдж рдШрдЯрдХ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рджреВрд╕рд░реА рдУрд░, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдкреНрд░рддрд┐рдирд┐рдзрд┐рдордВрдбрд▓ рд╕реНрдерд┐рддрд┐ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рдХрдордЬреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИред

рд▓реЗрдЦ рд╡рд┐рдХрд╛рд╕ рдХреЗ рддрдХрдиреАрдХреА рдкрд╣рд▓реВ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ, рд╕реВрдЪреАрдмрджреНрдз рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд▓рд╛рдЧрдд рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред


рдЕрдВрдЬреАрд░ред 2. Google рд╕рд╣рд╛рдпрдХ (рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░: Google рд╣реЛрдо рдФрд░ Google рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛ ) рдХреЗ рдШрдЯрдХреЛрдВ рдХреА рд╕рд╣рднрд╛рдЧрд┐рддрд╛ред

рд╡рд░реНрдгрд┐рдд рд╕реНрдЯреИрдХ рдХреЗ рднреАрддрд░, рдПрдХреНрд╢рди рд▓реЙрдЬрд┐рдХ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ (рдЪрд┐рддреНрд░ 2):

  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ Google рд╕рд╣рд╛рдпрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред
  • Google рдкрд░ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ Google рд╕рд╣рд╛рдпрдХ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХреЛ рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдореЗрдВ рдПрдХ рдкрд╛рда рдкреНрд░рд╛рд░реВрдк рдореЗрдВ, рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ (рдкреВрд░реНрд╡ рдЕрдиреБрд░реЛрдз рдкрд░ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╕рд╣рдорддрд┐ рд╕реЗ) рдФрд░ рд╡рд░реНрддрдорд╛рди рдмрд╛рддрдЪреАрдд ред
  • рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдкреНрд░рд╛рдкреНрдд рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ рдФрд░, рдПрдордПрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдирд┐рд░реНрдгрдп рд▓реЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрддреНрддрд░ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧрд╛ред
  • рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рд╕рд░реНрд╡рд░ рдХреЛ рдлрд╝рд╛рдпрд░рдмреЗрд╕ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдкрд░ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЧрдарди рдХреЛ рд╕реМрдВрдк рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреА рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
  • рдЙрддреНрддрд░ рдмрдирдиреЗ рдХреЗ рдмрд╛рдж, рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдЗрд╕реЗ Google рдкрд░ рдХрд╛рд░реНрд░рд╡рд╛рдЗрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд▓реМрдЯрд╛ рджреЗрддрд╛ рд╣реИ, рдЬрд╣рд╛рдБ рд╕реЗ рдпрд╣ Google рд╕рд╣рд╛рдпрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИред

рд╡рд┐рдЪрд╛рд░


рд╣рдорд╛рд░реА рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рджреНрд╡рд╛рд░рд╛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдЧреА рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреА gifs рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╡рд╣ GIPHY API рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдвреВрдВрдвреЗрдЧрд╛ рдФрд░ рдХрд╛рд░реНрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╡рд╛рдкрд╕ рд▓реМрдЯрд╛рдПрдЧрд╛ред рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗ:

  1. Google, Dialogflow рдФрд░ Firebase рдлрд╝рдВрдХреНрд╢рдВрд╕ рдкрд░ рдХреНрд░рд┐рдпрд╛рдПрдБ рд╕реЗрдЯ рдФрд░ рд▓рд┐рдВрдХ рдХрд░реЗрдВред
  2. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ (рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ) рд╕реЗ рдХреАрд╡рд░реНрдб рдирд┐рдХрд╛рд▓реЗрдВред
  3. рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдбрд╛рдпрд▓реЙрдЧ (рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ)ред
  4. рд╕рдВрд╡рд╛рдж рд╕рдВрджрд░реНрдн (рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВред
  5. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд╛рдХреНрдпрд╛рдВрд╢ (рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ, рдлрд╛рдпрд░рдмреЗрд╕ рдлрд╝рдВрдХреНрд╢рди) рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реЗрдмрд╣реБрдХ рдмрдирд╛рдирд╛ рдФрд░ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ред
  6. рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдХрд╛рд░реНрдб рдХреЗ рд╣рд┐рдВрдбреЛрд▓рд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ (рдлрд╛рдпрд░рдмреЗрд╕ рдлрд╝рдВрдХреНрд╢рдВрд╕)ред
  7. рддреГрддреАрдп-рдкрдХреНрд╖ рд╕реЗрд╡рд╛ (рдлрд╛рдпрд░рдмреЗрд╕ рдлрд╝рдВрдХреНрд╢рдВрд╕) рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ред

рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реЗрдЯрдЕрдк



рдЕрдВрдЬреАрд░ред 3. рдПрдХ рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдПрдЬреЗрдВрдЯ рдмрдирд╛рдирд╛ред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдПрдХ Google рдЦрд╛рддреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдЗрдП рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдореЗрдВ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдХрд░ рд╢реБрд░реВ рдХрд░реЗрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП, рдХрдВрд╕реЛрд▓ рдореЗрдВ, рдПрдЬреЗрдВрдЯ рдмрдирд╛рдПрдВ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдлрд╝реАрд▓реНрдб (рдЪрд┐рддреНрд░ 3) рднрд░реЗрдВ:ред

  • рдбрд┐рдлрд╝реЙрд▓реНрдЯ рднрд╛рд╖рд╛ "рд░реВрд╕реА - рдЖрд░рдпреВ" рд╣реИред
  • рд╕рдордп рдХреНрд╖реЗрддреНрд░: "(GMT + 3: 00) рдпреВрд░реЛрдк / рдорд╛рд╕реНрдХреЛ"ред
  • Google рдХреНрд▓рд╛рдЙрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ: рдЖрдкрдХреЗ рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдПрдЬреЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдЬреАрд╕реАрдкреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдпрд╛ рдЖрдк рдореМрдЬреВрджрд╛ рдЬреАрд╕реАрдкреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЛ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ, рдпрджрд┐ рдХреЛрдИ рд╣реЛред

рдлрд┐рд░ рдКрдкрд░реА рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рд╕реНрдерд┐рдд рдмрдирд╛рдПрдВ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдПрдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрд╕реЛрд▓ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред


рдЕрдВрдЬреАрд░ред 4. рдорд╛рдирдХ рдЗрд░рд╛рджрд╛ред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдПрдЬреЗрдВрдЯ рдмрдирд╛рддреЗ рд╕рдордп, рджреЛ рдЙрджреНрджреЗрд╢реНрдп рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ (рдЪрд┐рддреНрд░ 4):

  • "рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрд╡рд╛рдЧрдд рдЗрд░рд╛рджреЗ" - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдмрдзрд╛рдИ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ;
  • "рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝реЙрд▓рдмреИрдХ рдЗрдВрдЯреЗрдВрдЯ" - рдЕрдЬреНрдЮрд╛рдд рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЗрдВрдЯреЗрдВрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдореЗрдВ рд╕рдВрд╡рд╛рдж рдмрдирд╛рдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣рд╛рдБ рдФрд░ рдпрд╣рд╛рдБ рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ , рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред


рдЕрдВрдЬреАрд░ред 5. "рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрд╡рд╛рдЧрдд рдЗрд░рд╛рджреЗ" рдХреЗ рд▓рд┐рдП рдЙрддреНрддрд░ред

рд╣рдо "рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрд╡рд╛рдЧрдд рдЗрд░рд╛рджреЗ" рдореЗрдВ рдХреБрдЫ рд╕реНрд╡рд╛рдЧрдд рдпреЛрдЧреНрдп рдЙрддреНрддрд░ рдЬреЛрдбрд╝реЗрдВрдЧреЗ, рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ рдХрд┐ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреНрдпрд╛ рд╣реИ рдФрд░ рд╡рд╣ рдХреНрдпрд╛ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИред "рдЬрд╡рд╛рдм" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ, "Google рд╕рд╣рд╛рдпрдХ" рдЯреИрдм рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ "рд╕реБрдЭрд╛рд╡ рдЬрд╣рд╛рдЬреЛрдВ" рдореЗрдВ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд▓рд┐рдЦреЗрдВрдЧреЗ рдХрд┐ рдХрд╛рд░реНрд░рд╡рд╛рдИ (рдЫрд╡рд┐ 5) рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рд╕рдВрд╡рд╛рдж рдХрд░реЗрдВред

Google рд╕рд╣рд╛рдпрдХ рдХреЛ рдлреЛрди рдФрд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рджреЛрдиреЛрдВ рдореЗрдВ рдбрд┐рдмреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдореБрд▓реЗрдЯрд░ рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ "Google рд╕рд╣рд╛рдпрдХ" рдХрд╛рд░реНрдб рдореЗрдВ "рдПрдХреАрдХрд░рдг" рдЕрдиреБрднрд╛рдЧ рдкрд░ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, "рдПрдХреАрдХрд░рдг рд╕реЗрдЯрд┐рдВрдЧреНрд╕" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ "рд╕рд╣рд╛рдпрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдлреЛрди рдФрд░ рдПрдореБрд▓реЗрдЯрд░ рджреЛрдиреЛрдВ рдореЗрдВ, рдХреЛрдб "рдУрдХреЗ рдЧреВрдЧрд▓, рдореИрдВ рдЕрдкрдиреЗ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ" рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╢реБрд░реВ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдЖрдзрд╛рд░ рдкрд░рд┐рджреГрд╢реНрдп: GIF рдЦреЛрдЬ


рдПрдХ рдирдИ рдЦреЛрдЬ рдЖрд╢рдп рдмрдирд╛рдПрдБ, рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рд╕реЗ рдХреАрд╡рд░реНрдб рдирд┐рдХрд╛рд▓реЗрдЧрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╡реЗрдмрд╣реБрдХ рд╕рд░реНрд╡рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╛рдпрд░рдмреЗрд╕ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдореЗрдВ рднреЗрдЬреЗрдЧрд╛ред рд╕рд░реНрд╡рд░, рдмрджрд▓реЗ рдореЗрдВ, GIPHY API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд gif рдвреВрдВрдвреЗрдЧрд╛ рдФрд░ рдХрд╛рд░реНрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рдПрдЧрд╛ред


рдЕрдВрдЬреАрд░ред 6. рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдЬреЛрдбрд╝рдирд╛ред

рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдЕрдиреБрднрд╛рдЧ (рдЫрд╡рд┐ 6) рдореЗрдВ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдЬреЛрдбрд╝реЗрдВрдЧреЗ:

  • "рдореИрдВ рдиреГрддреНрдп рдЬрд┐рд░рд╛рдл рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред"
  • "рдПрдирд┐рдорд╢рдХреА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВред"
  • "рдЬрд╡рд╛рдиреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдУред"
  • рдореБрдЭреЗ рдЬрд┐рдл рджрд┐рдЦрд╛рдУред
  • "рдореБрдЭреЗ рдПрдирд┐рдореЗрдЯреЗрдб рд╣рд╛рдерд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВред"
  • "рдкрд╛рдВрдбрд╛ gifs рджрд┐рдЦрд╛рдПрдВред"
  • "рд░реИрдХреВрди рд╕реНрдЯреНрд░рд┐рдкреНрд╕ рдХреЗ рд╕рд╛рде рдЬреАрдЖрдИрдПрдлред"
  • "рдЖрдкрдХреЗ рдкрд╛рд╕ рдореБрд╣рд░реЗрдВ рд╣реИрдВред"
  • "рдордЬрд╝реЗрджрд╛рд░ рдлреЙрд▓ рдЦреЛрдЬреЗрдВред"


рдЕрдВрдЬреАрд░ред 7. рдкрд╛рда рд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рдХрд╛рд▓рдирд╛ред

рдЬреЛрдбрд╝реЗ рдЧрдП рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдХреЗ рд▓рд┐рдП, рдЦреЛрдЬ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ, рдЬрд┐рд╕реЗ рд╕рдВрд╡рд╛рдж рд╕реЗ рдкрд╛рда рд╕реЗ рдЪреБрдирдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкреИрд░рд╛рдореАрдЯрд░ @sys.any , рдХреНрдпреЛрдВрдХрд┐ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдЦреЛрдЬ рдХреНрд╡реЗрд░реА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ query рдФрд░ рдЗрд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдЪрд┐рддреНрд░ 7)ред


рдЕрдВрдЬреАрд░ред 8. рдкреНрд░рдореБрдЦ рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рд╕реВрдЪреАред

"рд╕рдВрдХреЗрдд" рдЙрдкрдзрд╛рд░рд╛ рдореЗрдВ рд╣рдо рд╕реНрдкрд╖реНрдЯ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬреЛ рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдкреВрдЫреЗрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рд╕реЗ рдХреАрд╡рд░реНрдб рдирд╣реАрдВ рдирд┐рдХрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ (рдЪрд┐рддреНрд░ 8)ред

рдЕрдЧрд▓рд╛, рдкреГрд╖реНрда рдХреЗ рдмрд╣реБрдд рдиреАрдЪреЗ "рдкреВрд░реНрддрд┐" рдЕрдиреБрднрд╛рдЧ рдкрд░ рдЬрд╛рдПрдВ (рдмрд╛рдПрдВ рдореЗрдиреВ рдореЗрдВ рд╕рдорд╛рди рдирд╛рдо рдХреЗ рдЕрдиреБрднрд╛рдЧ рдХреЗ рд╕рд╛рде рднреНрд░рдорд┐рдд рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП)ред "рд╕рдХреНрд╖рдо рдХрд░реЗрдВ рдлрд╝реБрд▓рдлрд╝рд┐рд▓рдореЗрдВрдЯ" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ "рдЗрд╕ рдЖрд╢рдп рдХреЗ рд▓рд┐рдП webhook рдХреЙрд▓ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ" рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВред рдпрд╣ рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдХреЛ рдлрд╛рдпрд░рдмреЗрдЬрд╝ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЧрдарди рдХреЛ рд╕реМрдВрдкрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рдЬрдм рдпрд╣ рдЗрд░рд╛рджреЗ рдХреЛ рд╣рд┐рдЯ рдХрд░рддрд╛ рд╣реИред

рдЕрдм рдмрд╛рдПрдВ рдореЗрдиреВ рдореЗрдВ "рдкреВрд░реНрддрд┐" рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВ рдФрд░ "рдЗрдирд▓рд╛рдЗрди рд╕рдВрдкрд╛рджрдХ" рдХреЛ рдЪрд╛рд▓реВ рдХрд░реЗрдВ, рдЬрд╣рд╛рдВ рд╣рдо рдирдП рдмрдирд╛рдП рдЧрдП "рдЦреЛрдЬ рдЗрд░рд╛рджреЗ" рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рд▓рд┐рдЦреЗрдВрдЧреЗред рдХреАрд╡рд░реНрдб рджреНрд╡рд╛рд░рд╛ GIF рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо https://api.giphy.com/v1/gifs/search рдЕрдиреБрд░реЛрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдХреЗ рдЕрдиреБрд╕рд╛рд░ JSON рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдорд┐рд▓реА рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реВрдЪреА рд▓реМрдЯрд╛рддрд╛ рд╣реИред GIPHY рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмреНрд░рд╛рдЙрдЬрд┐рдВрдЧ рд╣рд┐рдВрдбреЛрд▓рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ - рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдб рдХрд╛ рдПрдХ рд╣рд┐рдВрдбреЛрд▓рд╛, рдЬрдм рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рд╡реЗрдм рдкреЗрдЬ рдЦреБрд▓рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬрдм рдЖрдк рдХрд╛рд░реНрдб рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕ рдПрдиреАрдореЗрд╢рди рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде GIPHY рд╕реЗрд╡рд╛ рдкреГрд╖реНрда рдкрд░ рдЬрд╛рдПрдЧрд╛ред

рдХреЛрдб рдЬреЛ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдиреАрдЪреЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

 'use strict'; const GIPHY_API_KEY = 'API_KEY'; const SEARCH_RESULTS = [ '-,    .', ',   .', ',   !' ]; // Import the Dialogflow module from the Actions on Google client library. const { dialogflow, BrowseCarouselItem, BrowseCarousel, Suggestions, Image } = require('actions-on-google'); // Import the firebase-functions package for deployment. const functions = require('firebase-functions'); // Import the request-promise package for network requests. const request = require('request-promise'); // Instantiate the Dialogflow client. const app = dialogflow({ debug: true }); function getCarouselItems(data) { var carouselItems = []; data.slice(0, 10).forEach(function (gif) { carouselItems.push(new BrowseCarouselItem({ title: gif.title || gif.id, url: gif.url, image: new Image({ url: gif.images.downsized_medium.url, alt: gif.title || gif.id }), })); }); return carouselItems; } function search(conv, query) { // Send the GET request to GIPHY API. return request({ method: 'GET', uri: 'https://api.giphy.com/v1/gifs/search', qs: { 'api_key': GIPHY_API_KEY, 'q': query, 'limit': 10, 'offset': 0, 'lang': 'ru' }, json: true, resolveWithFullResponse: true, }).then(function (responce) { // Handle the API call success. console.log(responce.statusCode + ': ' + responce.statusMessage); console.log(JSON.stringify(responce.body)); // Obtain carousel items from the API call response. var carouselItems = getCarouselItems(responce.body.data); // Validate items count. if (carouselItems.length <= 10 && carouselItems.length >= 2) { conv.data.query = query; conv.data.searchCount = conv.data.searchCount || 0; conv.ask(SEARCH_RESULTS[conv.data.searchCount % SEARCH_RESULTS.length]); conv.data.searchCount++; conv.ask(new BrowseCarousel({ items: carouselItems })); } else { // Show alternative response. conv.ask('      ,   - ?)'); } }).catch(function (error) { // Handle the API call failure. console.log(error); conv.ask(',     .'); }); } // Handle the Dialogflow intent named 'Search Intent'. // The intent collects a parameter named 'query'. app.intent('Search Intent', (conv, { query }) => { return search(conv, query); }); // Set the DialogflowApp object to handle the HTTPS POST request. exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app); 

рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ
 { "name": "dialogflowFirebaseFulfillment", "description": "This is the default fulfillment for a Dialogflow agents using Cloud Functions for Firebase", "version": "0.0.1", "private": true, "license": "Apache Version 2.0", "author": "Google Inc.", "engines": { "node": "~6.0" }, "scripts": { "start": "firebase serve --only functions:dialogflowFirebaseFulfillment", "deploy": "firebase deploy --only functions:dialogflowFirebaseFulfillment" }, "dependencies": { "actions-on-google": "2.0.0-alpha.4", "firebase-admin": "^4.2.1", "firebase-functions": "^0.5.7", "dialogflow": "^0.1.0", "dialogflow-fulfillment": "0.3.0-beta.3", "request": "^2.81.0", "request-promise": "^4.2.1" } } 

рдЪреВрдВрдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рд╣реА рдЗрд░рд╛рджреЗ рд╕реЗ рдХрдИ рдмрд╛рд░ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдЙрддреНрддрд░реЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ Conversation.data JSON рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬреЛ рдХрд┐ рдлрд┐рд░ рд╕реЗ рдЖрд╢рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдФрд░ рдЕрдиреНрдп рд╡рд╛рд░реНрддрд╛рд▓рд╛рдк рд▓рд┐рдкрд┐рдпреЛрдВ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддреЗ рд╕рдордп рдЗрд╕рдХреЗ рдореВрд▓реНрдп рдХреЛ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИред


рдЕрдВрдЬреАрд░ред 9. рдмрд╛рддрдЪреАрдд рдХреА рд╢реБрд░реБрдЖрдд (рдмрд╛рдИрдВ рдУрд░), рдЦреЛрдЬ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╢реЛрдзрди рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рдЖрдЧреЗ рдкреНрд░рджрд░реНрд╢рди (рдХреЗрдВрджреНрд░ рдореЗрдВ), рдПрдХ рдирдИ рдХреНрд╡реЗрд░реА рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди (рджрд╛рдИрдВ рдУрд░)

рдиреЛрдЯ: рдлрд╛рдпрд░рдмреЗрд╕ рдлрдВрдХреНрд╢рдВрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддреГрддреАрдп-рдкрдХреНрд╖ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд┐рд▓рд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛, рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп, рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧреА:
"рдмрд┐рд▓рд┐рдВрдЧ рдЦрд╛рддрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдмрд╛рд╣рд░реА рдиреЗрдЯрд╡рд░реНрдХ рд╕реБрд▓рдн рдирд╣реАрдВ рд╣реИ рдФрд░ рдХреЛрдЯрд╛ рдЧрдВрднреАрд░ рд░реВрдк рд╕реЗ рд╕реАрдорд┐рдд рд╣реИрдВред рдЗрди рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓рд┐рдВрдЧ рдЦрд╛рддреЗ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред "
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╛рдПрдВ рдореЗрдиреВ рдореЗрдВ "рднреБрдЧрддрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЦрд╛рддрд╛" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдЯреИрд░рд┐рдл рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдмреАрдЪ рд▓реМ ($ 25 рдкреНрд░рддрд┐ рдорд╛рд╣) рдпрд╛ рдмреНрд▓реЗрдЬрд╝ (рднреБрдЧрддрд╛рди рдХрд░реЗрдВ) рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рдореИрдВрдиреЗ рдЕрдВрддрд┐рдо рд╡рд┐рдХрд▓реНрдк рдЪреБрдирд╛, рдХреНрдпреЛрдВрдХрд┐ рдкрд░реАрдХреНрд╖рдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рдореБрдЭреЗ рдЕрдзрд┐рдХ рд▓рд╛рднрджрд╛рдпрдХ рд▓рдЧрд╛ред

рдЙрдиреНрдирдд рдкрд░рд┐рджреГрд╢реНрдп: рдкреГрд╖реНрдард╛рдВрдХрди


рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдПрдХ рдЦреЛрдЬ рдХреНрд╡реЗрд░реА рдХреЗ рд▓рд┐рдП, GIPHY рдХреЛ рджрд╕ рд╕реЗ рдЕрдзрд┐рдХ GIF рдорд┐рд▓реЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕рдВрдкреВрд░реНрдг рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рд╕рд╣реА рд╣реЛрдЧрд╛, рдЕрд░реНрдерд╛рдд рдкреЗрдЬрд┐рдВрдЧ рдЬреЛрдбрд╝реЗрдВред

рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдХрдВрд╕реЛрд▓ рдореЗрдВ, рдЦреЛрдЬ рдЗрдВрдЯреЗрдВрдЯ рд╕реЗрд▓ рдкрд░ рд╣реЛрд╡рд░ рдХрд░реЗрдВред рджрд╛рдИрдВ рдУрд░ рдХрдИ рдмрдЯрди рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ, "рдлреЙрд▓реЛ-рдЕрдк рдЖрд╢рдп рдЬреЛрдбрд╝реЗрдВ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдпрд╣ рд╣рдореЗрдВ рдЦреЛрдЬ рдЗрд░рд╛рджреЗ рдХреЗ рдмрд╛рдж рдПрдХ рд╡рд╛рд░реНрддрд╛рд▓рд╛рдк рд╢рд╛рдЦрд╛ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪреА рдХреЗ рддрддреНрд╡реЛрдВ рдореЗрдВ, рд╣рдо "рдЕрдзрд┐рдХ" рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ - рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдирдХ рдЕрдЬреНрдЮрд╛рдиред


рдЕрдВрдЬреАрд░ред 10. рдЗрд░рд╛рджреЗ рдХрд╛ рд╕рдВрджрд░реНрдн "рдЦреЛрдЬ рдЖрд╢рдп - рдЕрдзрд┐рдХ рд╣реИред"

рдЖрдЗрдП рдирд╡ рдирд┐рд░реНрдорд┐рдд рдЗрд░рд╛рджреЗ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ "рд╕рдВрджрд░реНрдн" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВред рдЪреВрдВрдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдХрдИ рдмрд╛рд░ рдЕрдзрд┐рдХ GIF рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдЖрд╢рдп рдХреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдирд┐рд╡рд░реНрддрдорд╛рди рд╕рдВрджрд░реНрдн рдореЗрдВ, рдЙрд╕реА рдкрдВрдХреНрддрд┐ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬреЛ рдЖрдиреЗ рд╡рд╛рд▓реА (рдЫрд╡рд┐ 10) рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХреА рдЧрдИ рд╣реИред "Fullfilment" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ, рдЖрдкрдХреЛ "рдЗрд╕ рдЖрд╢рдп рдХреЗ рд▓рд┐рдП webhook рдХреЙрд▓ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ" рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рднреА рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЕрдм рд╣рдо рд╕рд╛рдЗрдб рдореЗрдиреВ рд╕реЗ тАЬFillfulmentтАЭ рдкрд░ рд▓реМрдЯрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдБ рд╣рдо тАЬSearch Intent - moreтАЭ рдХреЗ рд▓рд┐рдП рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо search рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ offset рдкреИрд░рд╛рдореАрдЯрд░ рднреА рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ GIPHY API рдореЗрдВ рдкреЗрдЬрд┐рдиреЗрд╢рди рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

 const SEARCH_RESULTS_MORE = [ '   !', ',    .', ',   .  ,    .' ]; function search(conv, query, offset) { // Send the GET request to GIPHY API. return request({ method: 'GET', uri: 'https://api.giphy.com/v1/gifs/search', qs: { 'api_key': GIPHY_API_KEY, 'q': query, 'limit': 10, 'offset': offset, 'lang': 'ru' }, json: true, resolveWithFullResponse: true, }).then(function (responce) { // Handle the API call success. console.log(responce.statusCode + ': ' + responce.statusMessage); console.log(JSON.stringify(responce.body)); // Obtain carousel items from the API call response. var carouselItems = getCarouselItems(responce.body.data); // Validate items count. if (carouselItems.length <= 10 && carouselItems.length >= 2) { conv.data.query = query; conv.data.offset = responce.body.pagination.count + responce.body.pagination.offset; conv.data.paginationCount = conv.data.paginationCount || 0; conv.data.searchCount = conv.data.searchCount || 0; // Show successful response. if (offset == 0) { conv.ask(SEARCH_RESULTS[conv.data.searchCount % SEARCH_RESULTS.length]); conv.data.searchCount++; } else { conv.ask(SEARCH_RESULTS_MORE[conv.data.paginationCount % SEARCH_RESULTS_MORE.length]); conv.data.paginationCount++; } conv.ask(new BrowseCarousel({ items: carouselItems })); conv.ask(new Suggestions('')); } else { // Show alternative response. conv.ask('      ,   - ?)'); } }).catch(function (error) { // Handle the API call failure. console.log(error); conv.ask(',     .'); }); } // Handle the Dialogflow intent named 'Search Intent - more'. app.intent('Search Intent - more', (conv) => { // Load more gifs from the privious search query return search(conv, conv.data.query, conv.data.offset); }); 


рдЕрдВрдЬреАрд░ред 11. gifs рдХреА рдЦреЛрдЬ рдХрд░рддреЗ рд╕рдордп рдкреГрд╖реНрдард╛рдВрдХрдиред

рдкрд░рд┐рдгрд╛рдо


рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╛ рд╡реАрдбрд┐рдпреЛ рдиреАрдЪреЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред



рдЧрд┐рдердм рдкрд░ рдЙрдкрд▓рдмреНрдз рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛрдб рдФрд░ рд╕рд╣рд╛рдпрдХ рдбрдВрдкред

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдбрдВрдк рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢
  1. рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдХрдВрд╕реЛрд▓ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдПрдХ рдирдпрд╛ рдПрдЬреЗрдВрдЯ рдмрдирд╛рдПрдВ рдпрд╛ рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред
  2. рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЖрдЗрдХрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, "рдирд┐рд░реНрдпрд╛рдд рдФрд░ рдЖрдпрд╛рдд" рдЕрдиреБрднрд╛рдЧ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ "рдЬрд╝рд┐рдк рд╕реЗ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреА рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рд╕реЗ рдЬрд┐рдк рдлрд╛рдЗрд▓ рдХреЛ рдЪреБрдиреЗрдВред
  3. рдмрд╛рдПрдВ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдореЗрдиреВ рд╕реЗ "рдкреВрд░реНрддрд┐" рдЪреБрдиреЗрдВред
  4. "рдЗрдирд▓рд╛рдЗрди рд╕рдВрдкрд╛рджрдХ" рд╕реЗрдЯрд┐рдВрдЧ рдЪрд╛рд▓реВ рдХрд░реЗрдВред
  5. "рдкреВрд░реНрддрд┐" рдореЗрдВ functions рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рдлрд╛рдЗрд▓реЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЙрдкрдпреБрдХреНрдд рдЯреИрдм рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВред
  6. Index.js рдЯреИрдм рдореЗрдВ рдЕрдкрдиреА GIPHY API рдПрдХреНрд╕реЗрд╕ рдХреБрдВрдЬреА рджрд░реНрдЬ рдХрд░реЗрдВред
  7. рдлрд╛рдпрд░рдмреЗрд╕ рдХрдВрд╕реЛрд▓ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдЕрдкрдиреЗ рдкреНрд▓рд╛рди рдХреЛ рдлреНрд▓реЗрдо рдпрд╛ рдмреНрд▓реЗрдЬрд╝ рдореЗрдВ рдмрджрд▓реЗрдВред рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдореБрдлреНрдд рдЯреИрд░рд┐рдл рдкреНрд▓рд╛рди рдХреЗ рд╕рд╛рде рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред

Source: https://habr.com/ru/post/hi419261/


All Articles