Google-api-nodejs-client: рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ V2 API рдирдореВрдирд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 1 рдЬреВрди 2018  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: googleapis/google-api-nodejs-client

рдирдорд╕реНрддреЗ!
рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдбрд╛рдпрд▓реЙрдЧрдлреНрд▓реЛ рд╡реА 2 рдПрдкреАрдЖрдИ рдирдореВрдирд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?
рдзрдиреНрдпрд╡рд╛рдж!

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╣реИ @JustinBeckwith рд╡рд╣рд╛рдБ dialogflow-NodeJS-рдЧреНрд░рд╛рд╣рдХ-v2 рдХреЗ рд╕рд╛рде рдореБрджреНрджреЛрдВ, рдПрдХ рд╣рдордиреЗ рдкрд╛рдпрд╛ рдХрд┐ рд╣рдо рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдо рдЙрдирдореЗрдВ рд╕реЗ рдЖрдХрд╛рд░ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ deps webpacking рд░рд╣реЗ рд╣реИрдВ рдХрд╛ рднрд╛рд░ рдХреЗ рдмрд┐рдирд╛ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рд▓реИрдореНрдмреНрдбрд╛ рдкрд░ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред

google-api-nodejs-client рд╕рднреА Axios REST рд╣реИ, рдЗрд╕рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╕реНрдерд╛рдиреЛрдВ рд╕реЗ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд▓реЛрдб рдХреА рдЧрдИ рдкреНрд░реЛрдЯреЛрдмрдлрд╝ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬрдЯрд┐рд▓ рд╡реЗрдмрдкреИрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди/рдлрд╝рд╛рдЗрд▓ рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

@joseparoli рдпрд╣рд╛рдБ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдореБрдЭреЗ рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдореНрд░ рд▓рдЧ рдЧрдИ - рдкрде рдкреИрд░рд╛рдореАрдЯрд░ рднреНрд░рдорд┐рдд рдХрд░ рд░рд╣реЗ рдереЗ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЗрд╕реЗ [рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЖрдИрдбреА] (рдкреИрд░реЗрдВрдЯ рдкрд░рдо рджреЗрдЦреЗрдВ) рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддреЗ рдереЗ ... рд▓реЗрдХрд┐рди рдпрд╣ рдпреВрдЖрд░рдПрд▓ рдкрде рдХреА рддрд░рд╣ рдЕрдзрд┐рдХ рд╣реИ:/рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕/[рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЖрдИрдбреА]ред рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд▓реЗрдВрдЧреЗ рддреЛ рдЖрдк рдЙрдиреНрд╣реЗрдВ рд╣рдореЗрд╢рд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдвреВрдВрдв рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдпрд╣рд╛рдВ

````
'рд╕рдЦреНрдд рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ';

const {google} = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('googleapis');
рдХреЙрдиреНрд╕реНрдЯ рдкрде = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('рдкрде');

async рдлрд╝рдВрдХреНрд╢рди рд░рди рдирдореВрдирд╛ () {

рдХреЙрдиреНрд╕реНрдЯ рдХреНрд▓рд╛рдЗрдВрдЯ = рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ google.auth.getClient({
keyFile: path.join(__dirname, 'key.json'),
рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░: 'https://www.googleapis.com/auth/cloud-platform'
});

рдХреЙрдиреНрд╕реНрдЯ рдбрд╛рдпрд▓реЙрдЧрдлреНрд▓реЛ = google.dialogflow({
рд╕рдВрд╕реНрдХрд░рдг: 'v2',
рдкреНрд░рдорд╛рдгреАрдХрд░рдг: рдЧреНрд░рд╛рд╣рдХ
});

рдХреЙрдиреНрд╕ рдкрд░рд┐рдгрд╛рдо = рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдбрд╛рдпрд▓реЙрдЧрдлреНрд▓реЛред рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ред рдЧреЗрдЯрдПрдЬреЗрдВрдЯ ({
рдкреИрд░реЗрдВрдЯ: 'рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕/'
});

рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ (рдкрд░рд┐рдгрд╛рдоред рдбреЗрдЯрд╛);

}

рдЕрдЧрд░ (рдореЙрдбреНрдпреВрд▓ === рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореБрдЦреНрдп) {
рд░рди рдирдореВрдирд╛ ()ред рдкрдХрдбрд╝ (рдХрдВрд╕реЛрд▓ред рддреНрд░реБрдЯрд┐);
}

// рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдпрд╛рдд
рдореЙрдбреНрдпреВрд▓.рдПрдХреНрд╕рдкреЛрд░реНрдЯреНрд╕ = {рд░рдирд╕реИрдВрдкрд▓};
````

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЕрднрд┐рд╡рд╛рджрди! рдпрджрд┐ рдЖрдк рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ :)
https://github.com/dialogflow/dialogflow-nodejs-client-v2

рд╣реИ @JustinBeckwith рд╡рд╣рд╛рдБ dialogflow-NodeJS-рдЧреНрд░рд╛рд╣рдХ-v2 рдХреЗ рд╕рд╛рде рдореБрджреНрджреЛрдВ, рдПрдХ рд╣рдордиреЗ рдкрд╛рдпрд╛ рдХрд┐ рд╣рдо рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдо рдЙрдирдореЗрдВ рд╕реЗ рдЖрдХрд╛рд░ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ deps webpacking рд░рд╣реЗ рд╣реИрдВ рдХрд╛ рднрд╛рд░ рдХреЗ рдмрд┐рдирд╛ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рд▓реИрдореНрдмреНрдбрд╛ рдкрд░ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред

google-api-nodejs-client рд╕рднреА Axios REST рд╣реИ, рдЗрд╕рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╕реНрдерд╛рдиреЛрдВ рд╕реЗ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд▓реЛрдб рдХреА рдЧрдИ рдкреНрд░реЛрдЯреЛрдмрдлрд╝ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬрдЯрд┐рд▓ рд╡реЗрдмрдкреИрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди/рдлрд╝рд╛рдЗрд▓ рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

@joseparoli рдпрд╣рд╛рдБ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдореБрдЭреЗ рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдореНрд░ рд▓рдЧ рдЧрдИ - рдкрде рдкреИрд░рд╛рдореАрдЯрд░ рднреНрд░рдорд┐рдд рдХрд░ рд░рд╣реЗ рдереЗ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЗрд╕реЗ [рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЖрдИрдбреА] (рдкреИрд░реЗрдВрдЯ рдкрд░рдо рджреЗрдЦреЗрдВ) рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддреЗ рдереЗ ... рд▓реЗрдХрд┐рди рдпрд╣ рдпреВрдЖрд░рдПрд▓ рдкрде рдХреА рддрд░рд╣ рдЕрдзрд┐рдХ рд╣реИ:/рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕/[рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЖрдИрдбреА]ред рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд▓реЗрдВрдЧреЗ рддреЛ рдЖрдк рдЙрдиреНрд╣реЗрдВ рд╣рдореЗрд╢рд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдвреВрдВрдв рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдпрд╣рд╛рдВ

````
'рд╕рдЦреНрдд рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ';

const {google} = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('googleapis');
рдХреЙрдиреНрд╕реНрдЯ рдкрде = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('рдкрде');

async рдлрд╝рдВрдХреНрд╢рди рд░рди рдирдореВрдирд╛ () {

рдХреЙрдиреНрд╕реНрдЯ рдХреНрд▓рд╛рдЗрдВрдЯ = рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ google.auth.getClient({
keyFile: path.join(__dirname, 'key.json'),
рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░: 'https://www.googleapis.com/auth/cloud-platform'
});

рдХреЙрдиреНрд╕реНрдЯ рдбрд╛рдпрд▓реЙрдЧрдлреНрд▓реЛ = google.dialogflow({
рд╕рдВрд╕реНрдХрд░рдг: 'v2',
рдкреНрд░рдорд╛рдгреАрдХрд░рдг: рдЧреНрд░рд╛рд╣рдХ
});

рдХреЙрдиреНрд╕ рдкрд░рд┐рдгрд╛рдо = рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдбрд╛рдпрд▓реЙрдЧрдлреНрд▓реЛред рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ред рдЧреЗрдЯрдПрдЬреЗрдВрдЯ ({
рдкреИрд░реЗрдВрдЯ: 'рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕/'
});

рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ (рдкрд░рд┐рдгрд╛рдоред рдбреЗрдЯрд╛);

}

рдЕрдЧрд░ (рдореЙрдбреНрдпреВрд▓ === рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореБрдЦреНрдп) {
рд░рди рдирдореВрдирд╛ ()ред рдкрдХрдбрд╝ (рдХрдВрд╕реЛрд▓ред рддреНрд░реБрдЯрд┐);
}

// рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдпрд╛рдд
рдореЙрдбреНрдпреВрд▓.рдПрдХреНрд╕рдкреЛрд░реНрдЯреНрд╕ = {рд░рдирд╕реИрдВрдкрд▓};
````

рдХреЛрдб рдирдореВрдирд╛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдФрд░ рдЕрдкрдирд╛ рддрд░реНрдХ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЬреИрд╕реЗ рд╣реА рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЕрдм рдЬрдм рд╣рдо рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╢рд┐рдк рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╣рдореЗрд╢рд╛ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдкреИрд░рд╛рдореАрдЯрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЛ рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рдХреНрдпрд╛ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реИ :)

@joseparoli рдореИрдВ рдЗрд╕реЗ рдЕрднреА рдХреЗ рд▓рд┐рдП рдмрдВрдж рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рдЕрдЧрд░ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдФрд░ рдорджрдж рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ... рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдмрддрд╛рдПрдВ!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Chethandsagar picture Chethandsagar  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

lowagner picture lowagner  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

dibeesh picture dibeesh  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

leecheve picture leecheve  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

madc0w picture madc0w  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ