
Aujourd'hui, nous:
- Créons l'application Alice (compétence) à l'aide du nouveau service (octobre 2019) Yandex Cloud Functions .
- Nous allons configurer notre application afin qu'elle envoie les commandes des clients (les soi-disant prospects) Ă Bitrix24 CRM.
Notre projet utilisera
Node.js (version
10.xx) - il doit être installé sur votre machine locale avec
npm (par défaut,
npm est installé avec l'installation de
Node.js , donc vous n'aurez probablement pas à l'installer séparément).
Selon le premier paragraphe de notre liste, nous apprendrons Ă travailler avec les
fonctions cloud , et cela a du sens: a) les réponses de notre application arriveront plus rapidement à Alice (elle vit quelque part dans le quartier, peut-être même à l'extérieur du mur); b) cela aide à économiser un peu (et peut-être beaucoup avec une grande clientèle): il est officiellement annoncé que lors de l'utilisation des compétences d'Alice, les appels de code dans les
fonctions cloud ne
sont pas facturés (bien qu'il y ait un petit écueil - j'en parlerai un peu plus tard).
Le deuxième point concerne l'une des rares façons de gagner de l'argent avec Alice. Sur la base des connaissances acquises aujourd'hui, il sera possible: a) de réaliser des applications sur mesure pour les entreprises clientes; b) ouvrez votre propre entreprise par vous-même (dans ce cas, vous serez parmi les pionniers et deviendrez donc fabuleusement riche).
Mais si vous n'avez pas fait de compétences pour Alice, ou si vous avez peu d'expérience - je vous renvoie à mon premier article de cette série:
«Alice acquiert une compétence» - avec son aide, vous créerez une application simple qui cite les gens intelligents et possède également un bouton pour collecter des dons pour stimuler vos propres pensées intelligentes.
Aujourd'hui, nous ferons également une application assez simple - voici un scénario de son travail. Un
super vendeur vend le nom et le prénom du client, et lorsque ce dernier avoue (ou trompe) - envoie une commande (prospect) contenant ces données à Bitrix24. Tout est comme indiqué dans les images ci-dessous.
Voici la compétence
Bitrix Seller (elle n'est pas dans le catalogue de compétences Alice, mais elle est vivante et vous pouvez l'appeler avec la phrase:
«Alice, lancez la compétence Bitrix Seller» - je vous invite à la tester). Sur le premier écran (à gauche), notre vendeur n'était pas content que l'utilisateur ne donne que le nom et il a de nouveau demandé. Sur le deuxième écran (à droite) - tout va bien, et l'ordre a «volé» vers Bitrix24:

Mais le plomb a déjà été reçu de notre vendeur, et il peut être vu dans la console Bitrix24 CRM:

Maintenant que le but de notre travail est clair, commençons.
Nuage Yandex
Bien que la formation pour travailler avec la plate-forme
Yandex.Cloud ne soit pas le but de cet article (mais je prévois de tels articles à l'avenir), afin de continuer, nous nous concentrerons sur le point clé - la création d'un compte dans Yandex.Cloud. Si vous avez déjà passé cette étape, vous pouvez ignorer cette section sans aucune conséquence négative pour notre leçon d'aujourd'hui. En fait, tout cela est très simple.
Sous votre compte Yandex, accédez au site Web Yandex.Cloud et cliquez sur le bouton "
Console ".

Le système va créer un répertoire de travail pour vous dans le cloud appelé par défaut (si vous êtes d'accord avec ce nom):

Maintenant, en allant dans le répertoire
par défaut (nous supposons que vous acceptez tous les noms proposés par le système), vous devriez voir une tuile
Virtual Private Cloud , comme indiqué dans l'image (les deux autres tuiles que vous voyez également y apparaîtront plus tard):

En cliquant sur la vignette, nous verrons qu'un réseau cloud est automatiquement créé pour vous aussi, assez curieusement, sous le nom
par défaut (ne pas confondre avec le nom du répertoire de travail avec le même nom dans lequel tout cela se trouve!):

En cliquant sur le nom du réseau (
par défaut ), nous verrons ses propriétés, y compris découvrir que (pour le moment) le réseau se compose de trois sous
- réseaux:
ru-central1-a ,
ru-central1-b et
ru-central1-c .

À sa base, les sous-réseaux sont soi-disant. centres de données, c'est-à -dire rampes physiques avec serveurs situés dans différentes villes de la Fédération de Russie (les zones dites) pour garantir le fonctionnement ininterrompu de la plate-forme et pour préserver l'intégrité (c'est-à -dire l'intégrité et la sécurité) des données des utilisateurs. Pour réduire le temps nécessaire pour terminer les opérations, il est recommandé de stocker toutes les ressources associées sur le même sous-réseau (c'est-à -dire dans le même centre de données). Ci-après, nous utiliserons le
sous- réseau
ru-central1-b , mais vous pourrez en choisir un autre le moment venu. Bonne nouvelle! C'est tout ce que nous devons savoir sur les réseaux, les sous-réseaux et les zones, et aujourd'hui nous ne reviendrons plus ici!
Il ne reste plus qu'Ă attacher la carte bancaire au compte
Yandex.Cloud pour que tous ses services deviennent disponibles pour nous. Ici, je dois dire que
Yandex.Cloud offre à chacun une période d'essai de 60 jours et 4 000 roubles - c'est-à -dire car quand tout cela se termine en premier. Mais même après l'expiration de la période d'essai, vos fonds ne seront pas automatiquement débités de la carte bancaire liée jusqu'à ce que vous le confirmiez explicitement en cliquant sur le bouton "
Passer Ă la version payante ".
Clause de non-responsabilitéIl n'est pas dans mes règles de donner des garanties, notamment financières. Par conséquent, le moment est venu de déclarer explicitement que je renonce à toute responsabilité, si soudain, à tout moment, il s'avère que les conditions de la plate- forme Yandex.Cloud concernant son utilisation gratuite ou ses plans tarifaires ne correspondent pas à ce qui est écrit ici ou à vos autres attentes .
Ainsi, pour joindre une carte bancaire, vous devez sélectionner l'élément
Facturation dans le menu de gauche:

LĂ , cliquez sur le bouton
«Créer un compte» et suivez les instructions: acceptez les conditions d'utilisation, saisissez vos coordonnées bancaires, confirmez les actions, etc. Une fois le compte de paiement créé, tous les services
Yandex.Cloud seront disponibles et nous pourrons continuer.
Bitrix24
Si vous n'avez pas encore de compte dans
Bitrix24 - il est temps d'en créer un. Ici, tout est simple et clair:
rendez-vous sur le site Web de Bitrix24 et créez-y un compte. Ils ont un niveau gratuit assez généreux sans limite de temps, donc pour nos besoins quelque chose à payer est complètement facultatif (bien que cela soit possible).
Ensuite, nous devons créer un webhook entrant. Pour ce faire, sélectionnez dans le menu de gauche:
Applications (peut-être que cet élément est masqué dans la liste "Plus") -> onglet "Webhooks" -> bouton "Ajouter un webhook" , comme indiqué dans la capture d'écran:

Lorsque vous cliquez sur le bouton "
Ajouter un webhook ", sélectionnez: "
Webhook entrant " dans la liste, puis sur la page de création, entrez un nom et une description raisonnables pour le nouveau webhook entrant, et cochez également la case
CRM (crm) :

Après cela, en bas de la page, cliquez sur le bouton "
Enregistrer ". En conséquence, le système vous donnera un exemple d'URL avec votre webhook, quelque chose comme ceci:
URL REST: https:
OĂą au lieu de
xxxxxxx sera votre webhook actuel (et au lieu de
12345 - votre vrai sous-domaine).
N'oubliez pas que le webhook doit être gardé secret, car il peut être utilisé pour faire des demandes à votre compte
Bitrix24 .
Mais nous devrons changer un peu les paramètres de ce webhook - faisons-le tout de suite afin de ne plus revenir ici, et sauvegardons (dans un endroit sûr) l'URL du webhook édité. Tout ce que vous avez à faire est de remplacer le
profil dans le chemin par
crm.lead.add.json , et donc notre compétence nécessitera une URL comme celle-ci:
https:
C’est tout. Nous passons au code de notre compétence pour Alice.
Travailler avec le projet
Il est maintenant temps de commencer à travailler avec notre projet - une compétence pour Alice, nommée "
Bitrix Seller ". Nous clonons (ou téléchargeons l'archive zip) le référentiel GitHub:
alice-tutorial-bitrix24 . Le référentiel fait partie intégrante de cet article. Dans la ligne de commande ou le terminal, installez les dépendances nécessaires:
cd alice-tutorial-bitrix24 npm install
Maintenant, le contenu de ce dossier devrait ressembler Ă ceci:

Le fichier de projet principal,
index.js , contient tout notre code. À partir du répertoire d'
images , téléchargez trois images selon vos compétences dans la console de développement d'Alice - onglet
Ressources ->
Images . Comme ça:

Le cadre rouge met en évidence les identifiants des images que nous devrons insérer dans notre code. Mais ce sera encore mieux si vous préparez vos propres images en utilisant cette analogie. Je recommande une taille de
512 x 230 pixels. Format de fichier requis:
JPEG, JPG, PNG . Il est également utile de les réduire en premier en utilisant un utilitaire - par exemple, j'ai utilisé le compresseur
Optimizilla en ligne.
Maintenant, ouvrez le fichier
index.js dans un éditeur (j'ai
Visual Studio Code ):

Au lieu de
xxx ... remplacez vos valeurs réelles: le sous-domaine
Bitrix24 et le webhook que nous avons reçus à l'étape précédente, et les identifiants d'image que nous venons de recevoir. Comme vous pouvez le voir, le code est plein de commentaires - lisez-le comme un chef d'orchestre!
Fonctions cloud et stockage d'objets
Vous devez maintenant placer notre application dans
Cloud Functions - un service de
Yandex.Cloud . Pour ce faire, vous devez d'abord préparer une archive zip qui inclura le répertoire avec les
packages de dépendance
node_modules et le fichier
index.js que vous venez de
modifier . Maintenant, le dossier de notre projet (avec l'archive zip ouverte pour plus de clarté) ressemblera à ceci:

Mais si vous regardez les propriétés de notre archive zip, il s'avère qu'en raison de la présence en son sein d'un répertoire avec des dépendances
node_modules , la taille de l'
archive atteint presque 6
Mo. Alors que selon la documentation, directement Ă partir de la machine locale dans
Cloud Functions, vous pouvez télécharger des archives ne dépassant pas 4
Mo. Par conséquent, nous devrons d'abord télécharger cette archive vers un autre service
Yandex.Cloud -
Yandex Object Storage , et Ă partir de lĂ - l'importer dans
Cloud Functions . La capture d'écran ci-dessous montre l'emplacement de ces deux services dans le menu de navigation de la console
Yandex.Cloud :

Nous allons dans le
stockage d'objets et y créons un compartiment (c'est-à -dire un compartiment, s'il est en russe) pour stocker des fichiers. J'ai appelé mon bucket
app-bucket , le vôtre - vous pouvez nommer ce que vous voulez. Laissez les autres paramètres inchangés:

Nous chargeons notre archive zip dans le compartiment nouvellement créé:

Maintenant, dans le menu de navigation de gauche, accédez au service
Cloud Functions , et là , nous créons une nouvelle fonction en appuyant sur le bouton du même nom. Nous donnons à la fonction un nom raisonnable, donnons une brève description et cliquez sur le bouton "
Créer ":

Après avoir créé une fonction, son nom apparaîtra dans la liste de toutes les fonctions disponibles (mais il est probable que vous ne l'ayez que jusqu'à présent). Cliquez sur le nom. Dans la page qui s'ouvre, dans le menu de gauche, allez dans la section "
Editeur " et remplissez les champs nécessaires:

Veuillez noter que nous devons basculer vers l'onglet
Stockage d'objets et qu'il est purement manuel, pour une raison quelconque, sans liste déroulante ni info-bulle (l'inconvénient est que vous devrez écrire à l'appui de
Yandex.Cloud ), remplissez: «
Bucket » - le nom de notre récemment seau créé; «
Objet » - archive zip de notre projet, couché dans ce seau; "
Point d'entrée " - selon le schéma:
nom_fichier_principal (point) nom_module . Notre point d'entrée sera
index.skill . Et pourquoi exactement - devinez de cette image:

Ne modifiez pas les valeurs dans les champs restants, mais cliquez plutĂ´t sur le bouton
Créer une version . Dans quelques secondes, notre code d'
Object Storage sera importé ici, et la fonction sera créée (à propos, maintenant l'archive zip d'
Object Storage peut être supprimée en toute sécurité, mais vous pouvez également la laisser comme copie de sauvegarde du projet - le coût de stockage y est symbolique), et nous le ferons automatiquement redirigé vers la page de
navigation :

Ici, vous devrez activer le commutateur "
Fonction publique " (mise à jour: à partir de novembre 2019, vous ne pouvez pas rendre publiques les fonctions des compétences d'Alice - l'intégration interne est implémentée lorsque vous les appelez via un identifiant, voir ci-dessous), et la valeur des champs "
Identifiant " et "
Lien "
appeler "garder le secret (dans l'image, j'ai pratiquement effacé ces champs), car tous ceux qui connaissent leurs valeurs pourront appeler votre fonction. Et les appels de fonction par référence - c'est le piège que j'ai mentionné au début de l'article - ils sont facturés. Mais dans notre compétence, nous appellerons la fonction d'une autre manière - via son identifiant. Ces appels seront gratuits!
Yandex.Dialogs
Nous allons Ă la
console du développeur Yandex.Dialogs , créons une nouvelle compétence (mais avec un nom différent - "
Bitrix Seller " existe déjà !), Et sur l'onglet "
Paramètres ", dans la section "
Backend ", sélectionnez "
Fonction dans Yandex.Cloud ", et à partir de Dans la liste déroulante, sélectionnez l'identifiant de notre fonction:

Nous remplissons tous les autres champs, enregistrons et allons dans l'onglet test. Cela devrait ressembler Ă ceci:

Nous envoyons nos compétences à la modération, puis les publions et les utilisons: les montrons à des amis et des clients potentiels, et surtout - nous développons le projet dans cette direction.
Conclusion
Bien que notre compétence s'appelle un
super-vendeur , en fait, le vendeur est plutĂ´t stupide. Donnez-lui un nom - il vous demandera son nom de famille (c'est OK). Vous lui donnerez le nom de famille - maintenant il demandera le nom (mais pardonnez-moi, ma chère, je viens de vous appeler!). Tout cela du fait qu'il ne sauvegarde pas les informations intermĂ©diaires reçues de l'utilisateur (c'est-Ă -dire avant l'envoi Ă
Bitrix24 ), ainsi que le contexte de la conversation. Ce sera mon prochain article. Si vous êtes intéressé, inscrivez-vous pour ne rien manquer. Vous pouvez vous abonner ici ou en
télégramme . Et j'en prends congé.
Mise à jour au 25 décembre 2019: l' article «
Alice se souvient de tout » a été publié, qui aborde les enjeux de la conservation des informations et le contexte de la conversation.
Beignets
