Mesaj alma

Business Messages'a kaydolduktan sonra, test aracınız adına mesaj alabilirsiniz. Yönettiğiniz markalar için temsilciler oluşturduktan, doğruladıktan ve başlattıktan sonra mesaj alabilirsiniz.

Müşteri, yönettiğiniz bir temsilciye mesaj gönderdiğinde Business Messages, webhook'unuza çeşitli kimlikler, mesaj içeriği ve konum bilgilerini içeren bir JSON yükü gönderir.

Mesaj teslim sorunlarını gidermek için İş İletişimi Geliştirici Konsolu günlükleri sayfasını kullanın.

Gelen iletileri işleme

Temsilcinizin kullanıcılardan gelen mesajları nasıl işlediği ve yanıtladığı, işletme mantığınıza büyük ölçüde bağlıdır. Bununla birlikte, kullanıcı mesajına yanıt verme adımları genellikle tutarlıdır.

Mesajı onaylama

Webhook'unuzun aldığı bir mesajı onaylamak için webhook'unuza gönderilen mesajlara geçerli bir HTTP yanıtı döndürün.

Bir ileti; teslimat zaman aşımı, webhook erişilebilirliği, yönlendirme veya izin sorunları nedeniyle başarısız olursa Google, 7 gün boyunca veya webhook'unuz başarıyla gönderilene kadar iletiyi depolar ve birden fazla deneme yaparak yönlendirir.

Mesajın Google'dan geldiğini doğrulama

Mesaj içeriğini işlemeden önce Google'ın mesajı gönderdiğini doğrulamanız gerekir.

Google'ın aldığınız bir mesajı gönderdiğini doğrulamak için

  1. İletinin X-Goog-Signature üstbilgisini ayrıştırın. Bu, mesaj gövde yükünün karma oluşturma işlemi uygulanmış, base64 kodlu bir kopyasıdır.
  2. İstemci jetonunuzu (webhook'unuzu yapılandırdığınızda sunulan) anahtar olarak kullanarak mesaj yükünün baytları için SHA512 HMAC oluşturun ve sonucu base64 olarak kodlayın.

  3. X-Goog-Signature karmasını, oluşturduğunuz karmayla karşılaştırın.

    • Karma değerleri eşleşiyorsa Google'ın mesajı gönderdiğini onaylamışsınızdır.
    • Karma oluşturma işlemi eşleşmiyorsa bilinen bir mesajdaki karma oluşturma işleminizi kontrol edin. Karma oluşturma işleminiz düzgün çalışıyorsa ve size hileli olarak gönderildiğini düşündüğünüz bir mesaj alırsanız bize ulaşın (bir Business Messages Google hesabıyla oturum açmanız gerekir).

Java, Node.js ve Python'da Echo Bot'lar için GitHub depolarındaki mesaj doğrulama örneğine bakın.

Yerel ayarı belirle

Kullanıcılar birçok yerden ve birçok dilde iletişim kurar. Business Messages, kullanıcıların yerel ayara dayalı resolvedLocale ve userDeviceLocale alanlarıyla kullanıcıların dil tercihlerini temsil eder. Yerelleştirme ve yerel ayarlar bölümünü inceleyin.

Mümkün olduğunda mesajları yönlendirin ve kullanıcıların dil tercihlerine göre yanıtlar oluşturun.

İletiyi bağlama göre yönlendir

Mesaj bağlamı, kullanıcının ne tür bilgiler arıyor olabileceğini bildirir. Örneğin, bir kullanıcı placeId değerine sahip bir mesaj gönderirse belirli bir konuma (placeId tarafından tanımlanır) mesaj gönderir ve muhtemelen konuma özel sorular sorması olasıdır. Benzer şekilde, bir mesajda kullanıcının yakınındaki bir konumu tanımlayan nearPlaceId değeri varsa kullanıcı muhtemelen konuma özel bilgileri öğrenmek ister ancak temsilci, kullanıcının sohbete başlamak istediği konumu konuşmayı başlatmadan önce onaylamalıdır.

İletinin bağlam bilgisi sayesinde iletiyi, yanıt vermeye en uygun konuma yönlendirin:

  • İleti yeni bir ileti dizisindeyse ve yaygın olarak sorulan bir soruysa otomasyonla cevap verebilirsiniz.
  • Otomasyon, soruyu cevaplayamıyorsa canlı bir temsilciye yönlendirin.
  • İletinin yerel ayarı, aracınızın varsayılan yerel ayarıyla eşleşmiyorsa iletiyi, bu yerel ayarı destekleyebilecek canlı bir temsilciye yönlendirin.
  • Soru belirli bir konumla ilgiliyse bu konumla ilgili bilgi içeren birine yönlendirin.
  • Mesaj devam eden bir görüşmedeyse görüşmeye dahil olan canlı temsilciye yönlendirin.

Kullanıcının gönderdiği mesaj türünü tanımlayın

Kullanıcılar üç tür mesaj gönderebilir:

  • Kısa mesajlar serbest biçimli yanıtlardır.
  • Resim mesajları, kullanıcının yüklediği bir resmin imzalı URL'sini içerir.
  • Öneri mesajları, geri gönderme verilerini ve önerilen işlemin veya kullanıcının tıkladığı önerilen yanıtın metnini içerir.

İleti içeriğini işleme

Temsilciniz otomasyon kullanıyorsa kullanıcı mesajının içeriği, temsilcinin mantığını ve görüşmede sonraki yanıtı yönlendirmelidir.

Kullanıcı amacını belirlemenin en kolay yolu, önerilen bir yanıttan veya önerilen işlemden elde edilen geri gönderme verileridir. Öneriyle ilişkilendirilen metinden bağımsız olarak, geri gönderme verileri makine tarafından okunabilir.

Bir kullanıcı kısa mesaj gönderirse temsilciniz, kullanıcının mesajını işlemek ve ileriye dönük bir yol belirlemek için desteklenen anahtar kelimelerin yanıtını ayrıştırabilir veya doğal dil anlama özelliğini (ör. Dialogflow entegrasyonuyla) kullanabilir.

Temsilciniz kullanıcının mesajına nasıl yanıt vereceğini bilmiyorsa bir hata durumuyla yanıt vermeli ve ek bilgi isteyerek, farklı bir şekilde giriş yapma isteğinde bulunarak ya da görüşmeyi canlı bir temsilciye vererek iletişimi sürdürmeye çalışmalıdır.

Kullanıcıya yanıt verme

Temsilci, otomasyon veya canlı aracı üzerinden doğru yanıtı tanımladıktan sonra bir mesaj gönderir ve kullanıcıyla görüşmeye devam eder.

Bir yanıt oluştururken kullanıcının yerel ayarını dikkate alın. Ayrıca, aldığınız her mesajdaki userInfo nesnesinden değerleri alarak yanıtları özelleştirebilirsiniz.

Mesaj türleri

Temsilcinizin nasıl mesaj aldığını aşağıdaki kodda görebilirsiniz.

Biçimlendirme ve değer bilgileri için bkz. UserMessage.

Metin

Kullanıcıların yanıt vermesi için en yaygın yöntem, düz metin kullanmaktır. Kısa mesajlar aşağıdaki biçimdedir.

{
  "agent": "brands/BRAND_ID/agents/AGENT_ID",
  "conversationId": "CONVERSATION_ID",
  "customAgentId": "CUSTOM_AGENT_ID",
  "requestId": "REQUEST_ID",
  "message": {
    "messageId": "MESSAGE_ID",
    "name": "conversations/CONVERSATION_ID/messages/MESSAGE_ID",
    "text": "MESSAGE_TEXT",
    "createTime": "MESSAGE_CREATE_TIME",
  },
  "dialogflowResponse": {
    "autoResponded": "BOOLEAN",
    "faqResponse": {
      "userQuestion": "USER_QUESTION",
      "answers": [{
        "faqQuestion": "FAQ_QUESTION",
        "faqAnswer": "FAQ_ANSWER",
        "matchConfidenceLevel": "CONFIDENCE_LEVEL",
        "matchConfidence": "CONFIDENCE_NUMERIC",
      }],
    },
  },
  "context": {
    "entryPoint": "CONVERSATION_ENTRYPOINT",
    "placeId": "LOCATION_PLACE_ID",
    "resolvedLocale": "MATCH_OF_USER_AND_AGENT_LOCALES",
    "userInfo": {
      "displayName": "USER_NAME",
      "userDeviceLocale": "USER_LOCALE",
    },
  },
  "sendTime": "SEND_TIME",
}

Biçimlendirme ve değer seçenekleri için bkz. Message.

Görüntü

Kullanıcılar aracıya kısa mesaj göndermenin yanı sıra mesaj olarak da mesaj gönderebilir. Business Messages, paylaşılan resimleri 7 gün boyunca imzalı URL'lerde depolar ve bu URL'leri mesaj yükünün text alanına ekler.

Temsilciniz otomasyon içeriyorsa kullanıcı bir resim paylaşırsa otomasyonun nasıl yanıt vereceğini bildiğinden emin olun. Canlı müşteri temsilcileri için, resimlerin iletildiğinden veya mesajlardaki URL'lerin tıklanabilir olduğundan emin olun.

...
"message": {
    "text": "https://storage.googleapis.com/business-messages-us/936640919331/jzsu6cdguNGsBhmGJGuLs1DS?x-goog-algorithm\u003dGOOG4-RSA-SHA256\u0026x-goog-credential\u003duranium%40rcs-uranium.iam.gserviceaccount.com%2F20190826%2Fauto%2Fstorage%2Fgoog4_request\u0026x-goog-date\u003d20190826T201038Z\u0026x-goog-expires\u003d604800\u0026x-goog-signedheaders\u003dhost\u0026x-goog-signature\u003d89dbf7a74d21ab42ad25be071b37840a544a43d68e67270382054e1442d375b0b53d15496dbba12896b9d88a6501cac03b5cfca45d789da3e0cae75b050a89d8f54c1ffb27e467bd6ba1d146b7d42e30504c295c5c372a46e44728f554ba74b7b99bd9c6d3ed45f18588ed1b04522af1a47330cff73a711a6a8c65bb15e3289f480486f6695127e1014727cac949e284a7f74afd8220840159c589d48dddef1cc97b248dfc34802570448242eac4d7190b1b10a008404a330b4ff6f9656fa84e87f9a18ab59dc9b91e54ad11ffdc0ad1dc9d1ccc7855c0d263d93fce6f999971ec79879f922b582cf3bb196a1fedc3eefa226bb412e49af7dfd91cc072608e98"
  }
...

Biçimlendirme ve değer seçenekleri için bkz. Message.

Öneri

Önerilen yanıtlar ve önerilen işlemler, kullanıcıların tek dokunuşla yanıt vermesine veya işlem yapmasına olanak tanır. Bir kullanıcı bir öneriye dokunduğunda temsilci, öneri metnini ve geri gönderme verilerini içeren bir yük alır.

Öneri mesajları aşağıdaki biçimdedir.

{
  "agent": "brands/BRAND_ID/agents/AGENT_ID",
  "conversationId": "CONVERSATION_ID",
  "customAgentId": "CUSTOM_AGENT_ID",
  "requestId": "REQUEST_ID",
  "suggestionResponse": {
    "message": "conversations/CONVERSATION_ID/messages/MESSAGE_ID",
    "postbackData": "POSTBACK_DATA",
    "createTime": "RESPONSE_CREATE_TIME",
    "text": "SUGGESTION_TEXT",
    "suggestionType": "SUGGESTION_TYPE",
  }
  "context": {
    "entryPoint": "CONVERSATION_ENTRYPOINT",
    "placeId": "LOCATION_PLACE_ID",
    "resolvedLocale": "MATCH_OF_USER_AND_AGENT_LOCALES",
    "userInfo": {
      "displayName": "USER_NAME",
      "userDeviceLocale": "USER_LOCALE",
    },
  },
  "sendTime": "SEND_TIME",
}

Biçimlendirme ve değer seçenekleri için bkz. SuggestionResponse.

Kimlik doğrulama isteği

Kimlik doğrulama isteği önerisi, kullanıcıların bir kimlik sağlayıcıyla kimlik bilgilerini sağlamak için bir OAuth sağlayıcısında oturum açmasına veya aracının, kullanıcılar adına işlem gerçekleştirmesine olanak tanır. OAuth ile kimlik doğrulama bölümünü inceleyin.

Bir kullanıcı belirtilen OAuth sağlayıcısıyla başarıyla oturum açarsa temsilci, yetkilendirme kodunu içeren bir yük alır. Bir kullanıcı oturum açmada başarısız olursa temsilci, hatanın ayrıntılarını içeren bir yük alır.

Kimlik doğrulama isteği mesajları aşağıdaki biçimdedir.

{
  "agent": "brands/BRAND_ID/agents/AGENT_ID",
  "conversationId": "CONVERSATION_ID",
  "customAgentId": "CUSTOM_AGENT_ID",
  "requestId": "REQUEST_ID",
  "authenticationResponse": {
    "code": "AUTHORIZATION_CODE",
    "redirect_uri": "REDIRECT_URI",
    "errorDetails": {
      "error": "ERROR",
      "errorDescription": "ERROR_DESCRIPTION",
    },
  }
  "context": {
    "entryPoint": "CONVERSATION_ENTRYPOINT",
    "placeId": "LOCATION_PLACE_ID",
    "resolvedLocale": "MATCH_OF_USER_AND_AGENT_LOCALES",
    "userInfo": {
      "displayName": "USER_NAME",
      "userDeviceLocale": "USER_LOCALE",
    },
  },
  "sendTime": "SEND_TIME",
}

Biçimlendirme ve değer seçenekleri için bkz. AuthenticationResponse.

Mesaj bağlamı

Her mesaj, kaynağın kaynağı hakkında bağlam bilgileri içerir.

...
  "context": {
    "customContext": "CUSTOM_CONTEXT",
    "entryPoint": "CONVERSATION_ENTRYPOINT",
    "placeId": "LOCATION_PLACE_ID",
    "nearPlaceId": "NEARBY_LOCATION_PLACE_ID",
    "deflectedPhoneNumber": "DEFLECTED_PHONE_NUMBER",
    "resolvedLocale": "MATCH_OF_USER_AND_AGENT_LOCALES",
    "userInfo": {
      "displayName": "USER_NAME",
      "userDeviceLocale": "USER_LOCALE",
    },
    "widget": {
      "url": "WEBSITE_URL",
      "widgetContext": "WIDGET_CONTEXT",
    },
  },
...
Alan Açıklama
customContext İş ortağı tarafından belirtilen bağlam verileri.
entryPoint Mesajın, kullanıcı tarafından başlatıldığı, EntryPoint'te tanımlandığı şekilde gösterilir.
placeId Kullanıcının gönderdiği konum için Google Yerler veritabanından gelen benzersiz bir tanımlayıcı. Yalnızca konuma özgü giriş noktalarından gelen iletilerde görünür.
nearPlaceId Yerel Paket'teki ilk konum için Google Rehber veritabanından gelen benzersiz bir tanımlayıcı. nearPlaceId değerleri aldığınızda kullanıcıların sohbet etmek istediği konumları onaylayın.
deflectedPhoneNumber Business Messages'ın görüşme başladığında kullanıcının arama yapmasını engellemek için kullandığı telefon numarası.
resolvedLocale

Kullanıcının yerel ayarının (userDeviceLocale'de raporlanan) ve aracının desteklediği yerel ayarların (belirtilen görüşme ayarları tarafından belirlenir) en iyi hesaplanan eşleşmesi. Yerelleştirme ve Görüşmeyi başlatma başlıklı makaleleri inceleyin.

Yerel ayar değeri, iyi biçimlendirilmiş bir IETF BCP 47 dil etiketidir.

userInfo.displayName İletiyi gönderen kullanıcının adı. Kullanıcı, kimlik paylaşımını devre dışı bırakırsa bu alan boş kalır.
userInfo.userDeviceLocale İyi yapılandırılmış bir IETF BCP 47 dil etiketi olarak, cihazı tarafından raporlanan kullanıcının yerel ayarı.
widget.url Görüşme yüzeyinin kullanıma sunulduğu web sitesinin URL'si.
widget.widgetContext Görüşmeyi başlatmak için kullanılan widget'ın data-bm-widget-context özellik değeri.

Görüşme geçmişi

Google, görüşme geçmişleri sağlamaz. Kendi geçmiş görüşmelerinizi, gizlilik politikanıza ve en iyi uygulamalara uygun bir şekilde sürdürün. Böylece, kullanıcılardan gelecek mesajlara bilinçli yanıtlar gönderebilirsiniz.