Günlük güncellemeler (Dialogflow)

Bir kullanıcının telefonunda bir Action'ın günlük güncellemelerine abone olan bir kullanıcı

İşleminiz kullanıcılara her gün değer sağlıyorsa kullanıcılara şunu hatırlatın: günlük güncellemeleri yapılandırarak kullanabilirsiniz. Bir kullanıcı günlük abone olduğunda almak için bir push bildirimi alırlar. İşleminizin amaçlarından birini çağırmak için dokunun.

Kullanıcıların bu güncellemelerle ilgili deneyimi aşağıdaki gibidir:

  1. Kullanıcı, İşleminizin temel olarak yapılandırdığınız amaçlarından birini çağırır günlük güncelleme.
  2. Kullanıcı, günlük güncellemelere abone olma istemini izler. Bu istem görüşme sırasında veya görüşme sona erdiğinde öneri çipi olarak verilir.
  3. Kullanıcı, günün herhangi bir saatinde günlük e-posta adresinizi almak istediği bir saat belirler. güncelleme, güncellemenizi Google Asistan'a kaydetme.
  4. Kullanıcı, her gün programlandığı saatte bir Asistan alır mobil cihazlarına bildirim gönderebileceklerini.
  5. Kullanıcı bu bildirimi açtığında, günlük güncelleme olarak yapılandırılıp İşleminizle etkileşimde bulunun.

Varsayılan olarak, günlük güncelleme kaydı istemi bir öneri çipi olarak görünür Kullanıcı İşleminizden başarıyla çıktığında. Görüşmenin ortasındaki bir görüşmeyi de veya kullanıcının güncellemelerini kişiselleştirin.

Kullanım alanları

Günlük güncellemeler kullanışlı bir etkileşim aracı olabilir ancak her İşlemlere dahil edilir. Eklenecek ya da olmayan bir uygulama veya bir İşleme günlük abonelik güncellemesi:

  • Günlük güncellemelerin kullanıcının farklı ve faydalı veriler görmesini sağlayacağından emin olun. bilgi edinmektir. Günlük bir güncellemeye dokunduğunuzda aynı istem gösteriliyorsa kullanıcı birkaç gün sonra abonelikten çıkabilir.
  • Kullanıcılar doğrudan doğrudan amacına ulaşabiliyorsunuz. Kullanıcınız baştan başlamayabilir çok fazla bağlama sahip olması beklenmemelidir.
  • Kaydolmalarını istemeden önce kullanıcınıza işleminizin avantajını gösterin takip edin. Kullanıcınız, "Bu içeriği her zaman istiyorum gün" abonelik seçeneği sunulduğunda.
  • Kaydolmak için tekrarlanan önerilerle kullanıcıyı bunaltmayın. Teklifin kullanıcıya ne abone olacağını gösterdikten hemen sonra günlük güncelleme aboneliği yapmalı ve teklifi başka bağlamlarda tekrarlamamalısınız.
  • Güncelleme amacı tetiklendikten sonra sohbeti kısa tutun. En çok günlük güncellemeler yalnızca tek bir yanıttan oluşmalı ve ardından tek bir yanıt olmadan kapatılmalıdır. giriş yapmayı gerektirebilir.
ziyaret edin.

Günlük güncellemeleri ayarlama

Dialogflow'da keşfet

Dialogflow'da günlük güncellemeler örneğimizi içe aktarmak için Devam'ı tıklayın. Ardından, adımları uygulayın:

  1. Bir aracı adı girin ve örnek için yeni bir Dialogflow aracısı oluşturun.
  2. Temsilcinin içe aktarma işlemini tamamladıktan sonra Temsilciye git'i tıklayın.
  3. Ana gezinme menüsünden Karşılama'ya gidin.
  4. Satır içi düzenleyici'yi etkinleştirin ve ardından Dağıt'ı tıklayın. Düzenleyici, örneği içeriyor girin.
  5. Ana gezinme menüsünden Integrations'a (Entegrasyonlar) gidin, ardından Google Asistan'a dokunun.
  6. Görünen kalıcı pencerede Otomatik önizleme değişiklikleri'ni etkinleştirin ve Test et'i tıklayın. Eylem simülatörünü açın.
  7. Simülatörde Talk to my test app komutunu girerek örneği test edebilirsiniz.
Devam

İşleminizin amaçlarından birini günlük güncellemeler için yapılandırmak üzere şu adımları uygulayın: talimatlar:

1. Güncelleme amacı hazırlama

İşleminizin amaçlarından birini tetikleme amacı olarak yapılandırın. Bu amaç kullanıcılara günlük güncelleme gönderilmesini sağlar; Kullanıcı günlük güncellemesini açtığında bildirimi, niyet tetikleyicileri ve buradan devam eder.

Dialogflow'da bir tetikleme amacı tanımlamak için aşağıdakileri yapın:

  1. Dialogflow Console'da şunu tıklayın: Entegrasyonlar.
  2. Google Asistan bölümünde Entegrasyon Ayarları'nı tıklayın.
  3. Keşif > Dolaylı çağrı için Amaç ekle'yi tıklayın. Tetikleme amacınızı seçin.
  4. Henüz etkinleştirilmemişse Otomatik önizleme değişikliklerini etkinleştirin.
  5. Kapat'ı tıklayın.

Actions SDK'sında, güncelleme amacınızı İşlem paketi.

2. Güncellemeleri etkinleştir

Tetikleme amacınızla ilgili günlük güncellemeleri etkinleştirmek için aşağıdakileri yapın:

  1. Actions Console'da Geliştir > İşlemler.
  2. Tetikleme amacınızı seçin. Amacınız listede görünmüyorsa tetikleyici intent ve Dialogflow'un Asistanı olarak yapılandırıldığından emin olun. entegrasyonu değişiklikleri otomatik olarak önizleyecek şekilde ayarlandı.
  3. Kullanıcı etkileşimi bölümüne gidin ve etkinleştirin Kullanıcılara günlük güncellemeler sunmak istiyor musunuz.
  4. İçerik başlığı girin.
  5. Kaydet'i tıklayın.

İşleminizi şunun için günlük güncelleme abonelikleri sunacak şekilde yapılandırdınız: isteyebilirsiniz. Artık günlük güncellemelerinizi kendi mobil cihazınızda test edebilirsiniz.

Güncelleme kaydını özelleştirin (isteğe bağlı)

Öneri çipi ve Asistan tarafından işlenen günlük güncellemeye ek olarak güncellemeleri almak için kullanıcılarınızın günlük kendi iletişim kutusu ve kayıt istemini kullanabilirsiniz.

İsteğe bağlı günlük güncelleme özelliklerini işleyen bir Action'ın tam örneği için Actions on Google kullanıcı etkileşimi örneklerine göz atın (Node.js ve Java) içerir.

Görüşmenize özel bir günlük güncelleme kaydı istemi eklemek için şu talimatları uygulayın:

1. Kayıt istemi ekleyin

İstem istediğinizde görüşmeye diyalog ve öneri çipi ekleyin kullanıcıların günlük güncellemelere abone olmasını sağlar. Kullanıcı etkileşimde bulunduktan sonra bu istemleri sunun Böylece günlük çalışmalarınızın içeriğini anlayabilirler. güncellemelerine göz atın.

Aşağıdaki örnek kod, kullanıcının her gün beklenen en düşük sıcaklığı sunmalıdır:

Node.js
app.intent('Daily Lowest Temperature', (conv, params) => {
  const today = DAYS[new Date().getDay()];
  const lowestTemperature = lowestTemperatures[today];
  conv.ask(`The lowest temperature for today is ${lowestTemperature}`);
  conv.ask('I can send you daily updates with the lowest temperature' +
    ' of the day. Would you like that?');
  conv.ask(new Suggestions('Send daily updates'));
});
Java
@ForIntent("Daily Lowest Temperature")
public ActionResponse dailyLowestTemperature(ActionRequest request) {
  ResponseBuilder responseBuilder = getResponseBuilder(request);
  Integer lowestTemperature =
      LOWEST_TEMPERATURES.get(LocalDate.now().getDayOfWeek());
  responseBuilder
      .add("The lowest temperature for today is " +  lowestTemperature + " degrees Fahrenheit.")
      .add("I can send you daily updates with the lowest temperature of " +
          "the day. Would you like that?")
      .addSuggestions(new String[] {
          "Send daily updates"
      });
  return responseBuilder.build();
}
Dialogflow JSON

Aşağıdaki JSON dosyasının bir webhook yanıtını açıkladığını unutmayın.

{
  "payload": {
    "google": {
      "expectUserResponse": true,
      "richResponse": {
        "items": [
          {
            "simpleResponse": {
              "textToSpeech": "The lowest temperature for today is 75 degrees Fahrenheit"
            }
          },
          {
            "simpleResponse": {
              "textToSpeech": "I can send you daily updates with the lowest temperature of the day. Would you like that?"
            }
          }
        ],
        "suggestions": [
          {
            "title": "Send daily updates"
          }
        ]
      }
    }
  }
}
İşlemler SDK'sı JSON

Aşağıdaki JSON dosyasının bir webhook yanıtını açıkladığını unutmayın.

{
  "expectUserResponse": true,
  "expectedInputs": [
    {
      "possibleIntents": [
        {
          "intent": "actions.intent.TEXT"
        }
      ],
      "inputPrompt": {
        "richInitialPrompt": {
          "items": [
            {
              "simpleResponse": {
                "textToSpeech": "The lowest temperature for today is 75 degrees Fahrenheit"
              }
            },
            {
              "simpleResponse": {
                "textToSpeech": "I can send you daily updates with the lowest temperature of the day. Would you like that?"
              }
            }
          ],
          "suggestions": [
            {
              "title": "Send daily updates"
            }
          ]
        }
      }
    }
  ]
}

2. Güncelleme kaydını işleme

Kullanıcı, kaydınızı takip ettiğinde tetiklenen yeni bir amaç oluşturun tıklayın. Bu yeni amacın karşılanmasında actions_intent_CONFIGURE_UPDATES öğesini tetikleyin yerleşik intent şu parametrelere sahiptir:

  • intent - Yapılandırdığınız güncelleme amacına ayarlayın.
  • frequency - "DAILY" olarak ayarlayın.

Aşağıdaki kod, "Günlük En Düşük Sıcaklık" için günlük güncellemeleri kaydeder amaç:

Dialogflow Node.js
app.intent('Subscribe to Daily Updates', (conv) => {
  conv.ask(new RegisterUpdate({
    intent: 'Daily Lowest Temperature',
    frequency: 'DAILY',
  }));
});
İşlemler SDK'sı Node.js
conv.ask(new RegisterUpdate({
  intent: 'Daily Lowest Temperature',
  frequency: 'DAILY',
}));
Dialogflow Java
@ForIntent("Subscribe to Daily Updates")
public ActionResponse subscribeToDailyUpdates(ActionRequest request) {
  ResponseBuilder responseBuilder = getResponseBuilder(request);
  return responseBuilder.add(new RegisterUpdate()
      .setIntent("Daily Lowest Temperature")
      .setFrequency("DAILY"))
      .build();
}
Actions SDK'sı Java
ResponseBuilder responseBuilder = getResponseBuilder(request);
return responseBuilder.add(new RegisterUpdate()
    .setIntent("Daily Lowest Temperature")
    .setFrequency("DAILY"))
    .build();
Dialogflow JSON
{
  "payload": {
    "google": {
      "expectUserResponse": true,
      "systemIntent": {
        "intent": "actions.intent.REGISTER_UPDATE",
        "data": {
          "@type": "type.googleapis.com/google.actions.v2.RegisterUpdateValueSpec",
          "intent": "Daily Lowest Temperature",
          "triggerContext": {
            "timeContext": {
              "frequency": "DAILY"
            }
          }
        }
      }
    }
  }
}
İşlemler SDK'sı JSON
{
  "expectUserResponse": true,
  "expectedInputs": [
    {
      "possibleIntents": [
        {
          "intent": "actions.intent.REGISTER_UPDATE",
          "inputValueData": {
            "@type": "type.googleapis.com/google.actions.v2.RegisterUpdateValueSpec",
            "intent": "Daily Lowest Temperature",
            "triggerContext": {
              "timeContext": {
                "frequency": "DAILY"
              }
            }
          }
        }
      ]
    }
  ]
}

3. Sonucu işleme

Asistan görüşmenizi üstlenir ve kullanıcıya geri dönmelerini sağlar. Kayıt işlemi tamamlandığında, Asistan, kullanıcının isteğine bağlı olup olmadığını belirten bir parametreyle başarılı olup olmadığını kontrol edin.

Bu adıma yönelik talimatlar, Geliştirme için Dialogflow veya Actions SDK'sı.

Dialogflow

Kayıt sonucunu işleyen bir intent oluşturmak için şu adımları uygulayın:

  1. Dialogflow konsolunda yeni bir amaç oluşturabilirsiniz.
  2. actions_intent_REGISTER_UPDATE etkinliğini ekleyin.
  3. Intent için webhook karşılamayı etkinleştirin.
  4. Kaydet'i tıklayın.
ziyaret edin. Niyeti yerine getirirken registered parametresini kullanın ve konuşmayı buna göre özetleyin.
Dialogflow Node.js
app.intent('Confirm Daily Updates Subscription', (conv, params, registered) => {
  if (registered && registered.status === 'OK') {
    conv.close(`Ok, I'll start giving you daily updates.`);
  } else {
    conv.close(`Ok, I won't give you daily updates.`);
  }
});
Dialogflow Java
@ForIntent("Confirm Daily Updates Subscription")
public ActionResponse confirmDailyUpdatesSubscription(ActionRequest request) {
  ResponseBuilder responseBuilder = getResponseBuilder(request);
  if (request.isUpdateRegistered()) {
    responseBuilder.add("Ok, I'll start giving you daily updates.");
  } else {
    responseBuilder.add("Ok, I won't give you daily updates.");
  }
  return responseBuilder.endConversation().build();
}
Dialogflow JSON
{
  "payload": {
    "google": {
      "expectUserResponse": false,
      "richResponse": {
        "items": [
          {
            "simpleResponse": {
              "textToSpeech": "Ok, I'll start giving you daily updates."
            }
          }
        ]
      }
    }
  }
}
Actions SDK'sı

Sipariş karşılama kodunuza actions.intent.REGISTER.UPDATE için işleme alma bilgilerini ekleyin. yerleşik amaçtır. Sonuç için registered parametresini kontrol edin. ve konuşmayı buna göre ayarlamanızı sağlar.

İşlemler SDK'sı Node.js
app.intent('actions.intent.REGISTER_UPDATE', (conv, params, registered) => {
  if (registered && registered.status === 'OK') {
    conv.close(`Ok, I'll start giving you daily updates.`);
  } else {
    conv.close(`Ok, I won't give you daily updates.`);
  }
});
Actions SDK'sı Java
@ForIntent("actions.intent.REGISTER_UPDATE")
public ActionResponse confirmDailyUpdatesSubscription(ActionRequest request) {
  ResponseBuilder responseBuilder = getResponseBuilder(request);
  if (request.isUpdateRegistered()) {
    responseBuilder.add("Ok, I'll start giving you daily updates.");
  } else {
    responseBuilder.add("Ok, I won't give you daily updates.");
  }
  return responseBuilder.endConversation().build();
}
İşlemler SDK'sı JSON
{
  "expectUserResponse": false,
  "finalResponse": {
    "richResponse": {
      "items": [
        {
          "simpleResponse": {
            "textToSpeech": "Ok, I'll start giving you daily updates."
          }
        }
      ]
    }
  }
}

Güncellemeleri kişiselleştirin (isteğe bağlı)

Güncelleme amacınızı kişiselleştirmek için kullanıcılar kaydolurken özel parametreler ekleyin günlük güncellemeler. Güncelleme amacını gerçekleştirirken bu parametrelere başvurun o kullanıcı için günlük güncellemeyi özelleştirebilirsiniz.

Bu özelliğe ilişkin talimatlar, Geliştirme için Dialogflow veya Actions SDK'sı.

Dialogflow

Güncelleme için özel parametreleri işleyecek bir Dialogflow varlığı tanımlayın, ardından parametrenin değerini, güncelleme amacınız için bir bağımsız değişken olarak aktarın. Dialogflow'da kişiselleştirilmiş güncellemeleri ayarlamak için aşağıdaki adımları uygulayın:

  1. Dialogflow konsolunda yeni bir varlık oluşturun.
  2. Parametrenizle alakalı birkaç giriş ve eş anlamlı ekleyin.
  3. Kaydet'i tıklayın, ardından güncelleme amacını açın.
  4. İşlemler ve parametreler bölümünde actions.intent.CONFIGURE_UPDATES değerini ayarlayın ekleyebilirsiniz. Aynı bölümde, yeni öğeyle aynı türde bir parametre ekleyin.
  5. "Kaydı güncelle"yi açın CONFIGURE_UPDATES yerleşik niyetini işleyen bir.
  6. İşlemler ve parametreler bölümünde gerekli bir parametreyi ekleyin ve türünü daha önce oluşturulan öğeye ayarlayın.
  7. Kayıt amacınızın karşılama kodunu, aşağıdakileri içeren bir arguments nesnesi içerecek şekilde güncelleyin: şu içerikte bulunuyorsunuz:
    • name - Dialogflow'da yapılandırılan parametrenizin adı.
    • textValue: Parametrenizin değeri.

Aşağıdaki kod, parametrenin değerini okur ve bu değeri güncelleme isteğinde:

Dialogflow Node.js
app.intent('setup_update', (conv) => {
  conv.ask(new RegisterUpdate({
    intent: 'update_of_the_day',
    arguments: [
      {
        name: 'category',
        textValue: 'Daily_lowest_temperature',
      },
    ],
    frequency: 'DAILY',
  }));
});
Dialogflow Java
@ForIntent("setup_update")
public ActionResponse setupUpdate2(ActionRequest request) {
  List<Argument> args =
      Arrays.asList(
          new Argument()
              .setName("category")
              .setTextValue(request.getParameter("category").toString()));
  return getResponseBuilder(request)
      .add(new RegisterUpdate().setIntent("intent_name").setArguments(args).setFrequency("DAILY"))
      .build();
}
Dialogflow JSON
{
  "payload": {
    "google": {
      "expectUserResponse": true,
      "richResponse": {
        "items": [
          {
            "simpleResponse": {
              "textToSpeech": "PLACEHOLDER"
            }
          }
        ]
      },
      "userStorage": "{\"data\":{}}",
      "systemIntent": {
        "intent": "actions.intent.REGISTER_UPDATE",
        "data": {
          "@type": "type.googleapis.com/google.actions.v2.RegisterUpdateValueSpec",
          "intent": "update_of_the_day",
          "arguments": [
            {
              "name": "category",
              "textValue": "Daily_lowest_temperature"
            }
          ],
          "triggerContext": {
            "timeContext": {
              "frequency": "DAILY"
            }
          }
        }
      }
    }
  },
  "outputContexts": [
    {
      "name": "/contexts/_actions_on_google",
      "lifespanCount": 99,
      "parameters": {
        "data": "{}"
      }
    }
  ]
}
Actions SDK'sı

Amacınızı yerine getirirken kullanıcıdan ek bilgi isteme sonra bilgileri, güncelleme amacınız için bir argüman olarak aktarın. Actions SDK'sında kişiselleştirilmiş güncellemeleri ayarlamak için aşağıdaki adımları uygulayın:

  1. Kullanıcıdan kullanmak istediğiniz bilgileri iste kişiselleştirme.
  2. "Kaydı güncelleme"niz için sipariş karşılama kodunuzda satın almanın CONFIGURE UPDATES işleyicisi bir arguments nesnesi içerir ve şu içerikte bulunuyorsunuz:
    • name: Bağımsız değişkeninizin adı.
    • textValue: Bağımsız değişken olarak iletilecek, kullanıcıdan alınan bilgiler.

Aşağıdaki kod, güncelleme kayıt isteğiyle birlikte bir bağımsız değişken gönderir:

İşlemler SDK'sı Node.js
app.intent('actions.intent.TEXT', (conv) => {
  if (conv.input.raw === 'Send daily') {
    conv.ask(new RegisterUpdate({
      intent: 'update_of_the_day',
      arguments: [
        {
          name: 'category',
          textValue: 'Daily_lowest_temperature',
        },
      ],
      frequency: 'DAILY',
    }));
  }
});
Actions SDK'sı Java
@ForIntent("actions.intent.CONFIGURE_UPDATES")
public ActionResponse configureUpdatesActionsSdk(ActionRequest request) {
  List<Argument> args =
      Arrays.asList(
          new Argument()
              .setName("category")
              .setTextValue(request.getParameter("category").toString()));
  return getResponseBuilder(request)
      .add(new RegisterUpdate().setIntent("intent_name").setArguments(args).setFrequency("DAILY"))
      .build();
}

@ForIntent("actions.intent.TEXT")
public ActionResponse text(ActionRequest request) {
  ResponseBuilder rb = getResponseBuilder(request);
  String input = request.getRawInput().getQuery();
  if (input.equals("DAILY_NOTIFICATION_SUGGESTION")) {
    rb.add("For which category do you want to receive daily updates?");
  } else {
    rb.add("Sorry, I didn't get that. Please try again later").endConversation();
  }
  return rb.build();
}
İşlemler SDK'sı JSON
{
  "expectUserResponse": true,
  "expectedInputs": [
    {
      "inputPrompt": {
        "richInitialPrompt": {
          "items": [
            {
              "simpleResponse": {
                "textToSpeech": "PLACEHOLDER"
              }
            }
          ]
        }
      },
      "possibleIntents": [
        {
          "intent": "actions.intent.REGISTER_UPDATE",
          "inputValueData": {
            "@type": "type.googleapis.com/google.actions.v2.RegisterUpdateValueSpec",
            "intent": "update_of_the_day",
            "arguments": [
              {
                "name": "category",
                "textValue": "Daily_lowest_temperature"
              }
            ],
            "triggerContext": {
              "timeContext": {
                "frequency": "DAILY"
              }
            }
          }
        }
      ]
    }
  ],
  "conversationToken": "{\"data\":{}}",
  "userStorage": "{\"data\":{}}"
}

Kullanıcı günlük güncellemenizi çağırdığında güncelleme amacınız artık şunları içeriyor: Kayıt sırasında kullanıcı tarafından verilen değerleri içeren bağımsız değişkenler. Bunları kullan değerini kullanın.

Günlük güncellemeleri test edin

Mobil cihazda Google Asistan'ın yüklü olduğu bir cihazda günlük güncellemelerinizi test edin: İşleminizi oluşturmak için kullandığınız Google Hesabı. İşleminizi çağırma ve günlük güncellemelere abone ol. Ardından cihazınızın bildirimlerini etrafınızda kontrol edin. güncelleme zamanı.