İstek karşılamayı dağıtma (Dialogflow)

Webhook karşılama isteğinizi oluşturduktan sonra üretime dağıtın ve İşleminize bağlayın. Aşağıdaki adımlarda, üretim barındırma amacıyla Cloud Functions for Firebase'e dağıtım yapmak için ortamınızı nasıl ayarlayacağınız gösterilmektedir. Bununla birlikte, istek karşılamanızı barındırmak için HTTPS isteklerini ve yanıtlarını destekleyen herhangi bir web barındırma platformunu seçebilirsiniz.

Webhook'unuzu daha önce bir web barındırma platformuna dağıttıysanız Webhook'u İşleminize bağlama adımını atlayabilirsiniz. Aşağıdaki süreçteki son adımların, Dialogflow veya Actions SDK kullanmanıza bağlı olarak farklılık göstereceğini unutmayın.

Cloud Functions for Firebase'e dağıtma

  1. Node.js'yi indirip yükleyin.
  2. Firebase CLI'yi ayarlayıp başlatın. Aşağıdaki komut EACCES hatasıyla başarısız olursa npm izinlerini değiştirmeniz gerekebilir.

    npm install -g firebase-tools
    
  3. Firebase aracının kimliğini Google hesabınızla doğrulayın:

    firebase login
    
  4. İşlem proje dizininize gidin ve Firebase'i başlatın. İşlemler projeniz için ayarlamak istediğiniz Firebase CLI özelliklerini seçmeniz istenir. Functions seçeneğini ve kullanmak isteyebileceğiniz diğer özellikleri (ör. Firestore) seçip onaylamak ve devam etmek için Enter tuşuna basın:

    cd <cloud_function_dir>
    firebase init
    
  5. Proje listesinde gezinmek için ok tuşlarını kullanıp Firebase aracını seçerek projenizle ilişkilendirin:

    komutunu kullanarak yapmanız gerekecektir.
  6. Projeyi seçtikten sonra Firebase aracı, Functions kurulumunu başlatır ve size hangi dili kullanmak istediğinizi sorar. Ok tuşlarını kullanarak seçin ve devam etmek için Enter'a basın.

    === Functions Setup
    A functions directory will be created in your project with a Node.js package pre-configured. Functions can be deployed with firebase deploy. ? What language would you like to use to write Cloud Functions? (Use arrow keys) > JavaScript TypeScript
  7. Olası hataları yakalamak ve Y veya N stil yazmayı zorunlu kılmak için ESLint'i kullanmak isteyip istemediğinizi seçin:

    ? Do you want to use ESLint to catch probable bugs and enforce style? (Y/n)
  8. İsteme Y yazarak proje bağımlılıklarını alın:

    ? Do you want to install dependencies with npm now? (Y/n)

    Kurulum tamamlandıktan sonra aşağıdakine benzer bir çıkış görürsünüz:

    ✔  Firebase initialization complete!
  9. actions-on-google bağımlılığını yükleyin:

    cd <cloud_function_dir>/functions
    npm install actions-on-google
    
  10. İstek karşılama bağımlılıklarını alın ve istek karşılama işlevini dağıtın:

    npm install
    firebase deploy --only functions
    

    Dağıtım birkaç dakika sürer. Tamamlandıktan sonra aşağıdakine benzer bir çıkış görürsünüz. Dialogflow'a girmek için İşlev URL'sine ihtiyacınız olacaktır.

    ✔  Deploy complete!
    Project Console: https://console.firebase.google.com/project/exampleproject-123/overview Function URL (cloudFunctionName): https://us-central1-exampleproject-123.cloudfunctions.net/cloudFunctionName

Webhook'u İşleminize bağlama

Dialogflow kullanıyorsanız: Dialogflow Console'da Fulfillment'a gidin, Webhook düğmesini ETKİN duruma getirin ve URL alanındaki URL'yi İşlev URL'nizle değiştirin.

Actions SDK'sını kullanıyorsanız: İşlem paketinizde karşılama durumunuzu beyan etmek için conversations nesnesinin içinde bir nesne oluşturun:

{
  "actions": [
    {
      "description": "Default Welcome Intent",
      "name": "MAIN",
      "fulfillment": {
        "conversationName": "myFulfillmentFunction"
      },
      "intent": {
        "name": "actions.intent.MAIN",
        "trigger": {
          "queryPatterns": [
            "talk to myFulfillmentFunction"
          ]
        }
      }
    }
  ],
  "conversations": {
    "myFulfillmentFunction": {
      "name": "myFulfillmentFunction",
      "url": "https://us-central1-myprojectname-ab123.cloudfunctions.net/cloudFunctionName"
    }
  },
  "locale": "en"
}