เรียกใช้ข้อความ Push

การแจ้งเตือนที่พาร์ทเนอร์ทริกเกอร์

เพิ่มข้อความและแจ้งเตือน

ฉากหลัง

หลังจากที่ผู้ใช้เพิ่มบัตรแล้ว คุณอาจต้องการส่งข้อความที่เกี่ยวข้องกับบัตรให้ผู้ใช้และตรวจสอบว่าผู้ใช้ได้รับการแจ้งเตือนเกี่ยวกับบัตร เมื่อใช้คำขอ Add Message API ที่มี message_type เท่ากับ TEXT_AND_NOTIFY จะเกิดสิ่งต่อไปนี้

  1. ระบบจะเพิ่มรายการ "ข้อความ" ลงใน "ด้านหลังของบัตร" (หรือที่เรียกว่าเทมเพลตรายละเอียด) และจะส่งการแจ้งเตือนแบบพุชไปยังผู้ใช้ที่บันทึกบัตรไว้
  2. เมื่อผู้ใช้แตะการแจ้งเตือน ระบบจะเปิด Google Wallet ไปที่ด้านหน้าของบัตร (หรือที่เรียกว่ามุมมองบัตร) และผู้ใช้จะเห็นข้อความไฮไลต์ที่ด้านบนของหน้าจอพร้อมปุ่ม "ดูข้อความ"
  3. การคลิกข้อความไฮไลต์จะนำผู้ใช้ไปยังด้านหลังของบัตร ซึ่งจะมีการไฮไลต์ข้อความใหม่ที่ยังไม่อ่าน

ข้อควรพิจารณาบางประการเมื่อส่งข้อความพร้อมการแจ้งเตือนถึงผู้ใช้

  • ผู้ใช้ต้องเปิดใช้การแจ้งเตือนสำหรับบัตรเพื่อรับ การแจ้งเตือนแบบพุชที่เกี่ยวข้องกับข้อความ
  • ข้อความอาจมี URI ไปยังเว็บไซต์หรือแอปของคุณ ไฮเปอร์ลิงก์ต้องเป็นเว็บไซต์หรือแอปที่เกี่ยวข้องกับบัตร การนำผู้ใช้ไปยังลิงก์ที่ไม่เกี่ยวข้องกับบัตรถือเป็นการละเมิดนโยบายการใช้งานที่ยอมรับได้
  • คุณส่งข้อความที่ทริกเกอร์ข้อความ Push ได้สูงสุด 3 ข้อความในระยะเวลา 24 ชั่วโมง Google อาจจำกัดโควต้าการนำส่งการแจ้งเตือนแบบพุชหากเห็นว่าคุณส่งสแปมให้ผู้ใช้
  • Google Wallet เป็นผู้ควบคุมการแจ้งเตือนแบบพุชที่ผู้ใช้เห็นในหน้าจอล็อก
  • คุณสามารถใช้วิธี UPDATE หรือ PATCH เพื่อแก้ไขหรือนำข้อมูลข้อความออกโดยใช้ปลายทางของคลาสหรือออบเจ็กต์ปกติ

ขั้นตอนการผสานรวม

เมื่อต้องการแจ้งให้ผู้ใช้ทราบเกี่ยวกับข้อความใหม่ของผู้ให้บริการที่เพิ่มโดยใช้ AddMessage API คุณจะต้องอัปเดต AddMessageRequest เพื่อให้ Message ซึ่งมีข้อความใหม่ของคุณมี MessageType TEXT_AND_NOTIFY แทน TEXT

ตัวอย่างคำขอ JSON เพื่อเพิ่มข้อความและแจ้งเตือนในคลาสบัตร

  
  "id": ISSUER_ID.CLASS_ID",
  "message":
    {
        "header":"My Class message header",
        "body": "My Class message body with a <a href="https://wallet.google">Hyperlink<\a>",
        "id": "message_id",
        "message_type": "TEXT_AND_NOTIFY"
    },
  

ตัวอย่างคำขอ JSON เพื่อเพิ่มข้อความและแจ้งเตือนในออบเจ็กต์บัตร

  
  "id": OBJECT_ID",
  "classId": "ISSUER_ID.CLASS_ID",
  "message":
    {
        "header":"My Object message header",
        "body": "My Object message body with a <a href="http://play.google.com/store/apps/details?id=com.google.android.apps.maps">Hyperlink<\a>",
        "id": "message_id",
        "message_type": "TEXT_AND_NOTIFY"
    },
  

ตัวอย่างการตอบกลับเพื่อเพิ่มข้อความและแจ้งเตือนสำหรับชั้นเรียนที่ผ่าน

  // The updated resource
      {
      "kind": "walletobjects#walletObjectMessage",
      "header": "My Object message header",
      "body": "My Object message body with a <a href="http://play.google.com/store/apps/details?id=com.google.android.apps.maps">Hyperlink<\a>",
      "id": "message_id",
      "messageType": "textAndNotify"
    },
  

การจัดการข้อยกเว้น

การพยายามแจ้งเตือนมากกว่า 3 ครั้งจะทำให้ได้รับคำตอบเป็น QuotaExceededException คุณตั้งค่าการอัปเดตบัตรเพิ่มเติมได้โดยใช้ "TEXT" แทน "TEXT_AND_NOTIFY" ตามที่อธิบายไว้ในขั้นตอนการผสานรวม

อัปเดตฟิลด์และแจ้งเตือน

ฉากหลัง

หลังจากที่ผู้ใช้เพิ่มบัตรแล้ว คุณอาจต้องทริกเกอร์ข้อความ Push เมื่ออัปเดตฟิลด์บางรายการ การแจ้งเตือนจะปรากฏในหน้าจอล็อกของผู้ใช้และแจ้งให้ทราบว่ามีการอัปเดตบัตร การแจ้งเตือนนี้จะทริกเกอร์สำหรับฟิลด์บางส่วนที่เฉพาะเจาะจงเท่านั้น ซึ่งกำหนดไว้ด้านล่างโดยใช้เมธอด API UPDATE และ PATCH เมื่อมีการเรียก API เพื่ออัปเดตบัตร สิ่งที่จะเกิดขึ้นมีดังนี้

  1. ระบบจะทริกเกอร์ข้อความ Push และแสดงในหน้าจอล็อกของผู้ใช้เพื่อแจ้งให้ทราบเกี่ยวกับการอัปเดตบัตร
  2. เมื่อผู้ใช้แตะการแจ้งเตือน ระบบจะเปิด Google Wallet ไปที่ด้านหน้าของ บัตรผ่าน (หรือที่เรียกว่ามุมมองบัตร) และผู้ใช้จะเห็นข้อความไฮไลต์ที่ด้านบนของหน้าจอพร้อมปุ่ม "ตรวจสอบ การอัปเดต"
  3. การคลิกปุ่มจะนำผู้ใช้ไปยังหน้าจอที่ผู้ใช้สามารถดูช่องที่การอัปเดตเปลี่ยนแปลงได้

ข้อควรพิจารณาบางประการเมื่อส่งการแจ้งเตือนการอัปเดตฟิลด์

  • ผู้ใช้ต้องเปิดใช้การแจ้งเตือนสำหรับบัตรเพื่อให้ได้รับข้อความ Push ที่เกี่ยวข้องกับการอัปเดต
  • คุณส่งการอัปเดตที่ทริกเกอร์ข้อความ Push ได้สูงสุด 3 รายการในช่วงเวลา 24 ชั่วโมง Google อาจจำกัดโควต้าการนำส่งการแจ้งเตือนแบบพุชหากเห็นว่าคุณ ส่งสแปมให้ผู้ใช้
  • Google Wallet เป็นผู้ควบคุมการแจ้งเตือนแบบพุชที่ผู้ใช้เห็นในหน้าจอล็อก
  • ฟิลด์ notifyPreference เป็นฟิลด์ชั่วคราว ซึ่งมีอยู่ในคำขอนี้เท่านั้น สำหรับคำขอในอนาคตเมื่อคุณต้องการทริกเกอร์การแจ้งเตือน คุณจะต้องรีเซ็ตฟิลด์นี้ในคำขอระดับชั้นเรียนหรือออบเจ็กต์

ขั้นตอนการผสานรวม

หากต้องการทริกเกอร์การแจ้งเตือนเหล่านี้ คุณจะต้องใช้การเรียก UPDATE หรือ PATCH ที่มีอยู่ และระบุ notifyPreference เมื่ออัปเดตฟิลด์ในชั้นเรียนหรือออบเจ็กต์ คุณจะ เพิ่มฟิลด์ใหม่ notifyPreference ลงในคำขอของชั้นเรียนหรือออบเจ็กต์เพื่อทริกเกอร์ การแจ้งเตือนได้

ตัวอย่างคำขอ JSON เพื่ออัปเดตและแจ้งเตือนในชั้นเรียน

    …
    "dateTime":
        {
            "kind": "walletobjects#eventDateTime",
            "doorsOpen": "2024-09-23T19:20:50.00"
        },
    "multipleDevicesAndHoldersAllowedStatus": "multipleHolders",
    "notifyPreference": "notifyOnUpdate",
    …
  

การตั้งค่า notifyPreference เป็น notifyOnUpdate จะทริกเกอร์การแจ้งเตือน หากฟิลด์ที่อัปเดตรองรับในปัจจุบัน

ฟิลด์ที่รองรับ

FlightObject
  • boardingAndSeatingInfo.seatNumber
  • boardingAndSeatingInfo.seatAssignment

การแจ้งเตือน Nearby

ฟีเจอร์นี้จะแสดงการแจ้งเตือนแบบพุชแก่ผู้ใช้ที่เปิดใช้การแจ้งเตือนและให้สิทธิ์เข้าถึงตำแหน่งที่แน่นอนตลอดเวลาแก่แอป Google Wallet เพื่อเตือนว่าผู้ใช้ได้บันทึกบัตรที่เกี่ยวข้องกับตำแหน่งปัจจุบันไว้แล้ว

ขั้นตอนการผสานรวม

วิธีใช้

หากต้องการใช้ฟีเจอร์นี้ คุณต้องเพิ่มสถานที่ตั้งลงในชั้นเรียนและออบเจ็กต์ คุณเพิ่มสถานที่ได้สูงสุด 10 แห่งต่อชั้นเรียนและ 10 แห่งต่อออบเจ็กต์ ใช้ MerchantLocations ในคลาสหรือออบเจ็กต์ คำจำกัดความ คุณเพิ่มสถานที่เหล่านี้ได้เมื่อใช้วิธี insert, patch หรือ update

หลังจากเพิ่มสถานที่ตั้งลงในชั้นเรียนหรือออบเจ็กต์แล้ว Google จะส่งการแจ้งเตือนให้ผู้ใช้เมื่อผู้ใช้ อยู่ใกล้สถานที่ตั้ง Google จะเป็นผู้กำหนดว่าผู้ใช้ต้องอยู่ใกล้กับพื้นที่ดังกล่าวมากน้อยเพียงใดและต้องอยู่ในพื้นที่นานเท่าใด ก่อนที่จะส่งการแจ้งเตือน นอกจากนี้ Google ยังควบคุมข้อความของการแจ้งเตือนด้วย

ตัวอย่าง LoyaltyClass ที่ตั้งค่า MerchantLocations
{
  "kind": "walletobjects#loyaltyClass",
  "programLogo": {
  "kind": "walletobjects#image",
  "sourceUri": {
    "uri":
    ...
  }
  },
  "localizedProgramName": {
    "kind": "walletobjects#localizedString",
    "defaultValue": {
      "kind": "walletobjects#translatedString",
      "language": "en",
      "value": "Program Name",
    }
  },
  "id": Id1234,
  "version": "1",
  "allowMultipleUsersPerObject": true,
  "reviewStatus": "underReview",
  "enableSmartTap": false,
  "localizedIssuerName": {
    "kind": "walletobjects#localizedString",
    "defaultValue": {
      "kind": "walletobjects#translatedString",
      "language": "en",
      "value": "Issuer Name"
    }
  },
  "multipleDevicesAndHoldersAllowedStatus": "multipleHolders",
  "merchantLocations": [
    {
      "latitude": 37.79020867928078,
      "longitude": -122.39004
    },
    {
      "latitude": 37.42587,
      "longitude": -122.08620
    },
  ]
}

ลักษณะการทำงานที่คาดไว้

ผู้ใช้ควรได้รับการแจ้งเตือนแบบติดหนึบเกี่ยวกับบัตรเมื่ออยู่ที่ MerchantLocation ที่ระบุ หากคลิกการแจ้งเตือน ระบบจะเปิดบัตรใน Google Wallet ผู้ใช้สามารถปิดการแจ้งเตือนด้วยท่าทางสัมผัสการปัด เมื่อผู้ใช้ออกจากสถานที่ การแจ้งเตือนจะหายไป

การแจ้งเตือนอัตโนมัติที่ทริกเกอร์โดย Google Wallet

การแจ้งเตือนที่กำลังจะมาถึง

Google Wallet จะส่งการแจ้งเตือนให้ผู้ใช้ 3 ชั่วโมงก่อน เที่ยวบิน ระยะเวลาของเที่ยวบินกำหนดโดย class.localScheduledDepartureDateTime

หากต้องการรับการแจ้งเตือนนี้ ผู้ใช้ต้องเปิดใช้การแจ้งเตือน โดยผู้ใช้สามารถตรวจสอบได้โดย ไปที่การตั้งค่า > การแจ้งเตือน แล้วดูว่าข้อมูลอัปเดตเกี่ยวกับบัตรเปิดอยู่หรือไม่

การแจ้งเตือนจะปรากฏในพื้นที่การแจ้งเตือนและในหน้าจอล็อก หากผู้ใช้ เปิดใช้การแจ้งเตือนสำหรับหน้าจอล็อก

การแจ้งเตือนจะมีรูปแบบต่อไปนี้ซึ่งแก้ไขไม่ได้

  Boarding pass for your flight to class.destination.airportIataCode
  

หากแตะการแจ้งเตือนและปลดล็อกอุปกรณ์ บัตรจะปรากฏในแอป Google Wallet

หากผู้ใช้มีบัตรหลายใบ ระบบจะแสดงเฉพาะบัตรที่ใช้ได้เร็วที่สุด หากผู้ใช้เพิ่มบัตรหลายใบที่จัดกลุ่มไว้ตามจัดกลุ่มบัตรขึ้นเครื่องหลายใบ การแจ้งเตือนจะแสดงบัตรเพียงใบเดียวในกลุ่ม แต่เมื่อแตะแล้ว ผู้ใช้จะปัดไปทางซ้ายและขวาเพื่อดูบัตรอื่นๆ ในกลุ่มนั้นได้

การแจ้งเตือนจะปักหมุดไว้และจะไม่ปิดโดยอัตโนมัติหลังจากที่ผู้ใช้เปิด ระบบจะปิดโดยอัตโนมัติหลังจาก class.localScheduledDepartureDateTime ผ่านไป 60 นาที

การแจ้งเตือนข้อมูลอัปเดตเกี่ยวกับเที่ยวบิน

เมื่อมีการเปลี่ยนแปลงฟิลด์บางอย่างของเที่ยวบิน ผู้ใช้ที่เพิ่มบอร์ดดิ้งพาสอย่างน้อย 1 รายการ จะได้รับการแจ้งเตือนแบบพุชในอุปกรณ์ ซึ่งจะเกิดขึ้นก็ต่อเมื่อเป็นไปตามเงื่อนไขบางประการเท่านั้น

อาคารผู้โดยสารและประตูต้นทาง

หากคุณเปลี่ยน class.origin.terminal หรือ class.origin.gate และเป็นไปตามเงื่อนไขต่อไปนี้ ระบบจะส่งการแจ้งเตือนว่ามีการเปลี่ยนแปลงฟิลด์

  • เหลือเวลาอีกไม่ถึง 3 ชั่วโมง ก่อนถึง class.localScheduledDepartureDateTime

การแจ้งเตือนจะมีรูปแบบดังนี้ "สายการบินตัวอย่างได้อัปเดตประตูขึ้นเครื่องเป็น A1" คุณเปลี่ยนรูปแบบ ไม่ได้

เวลาขึ้นเครื่องและเวลาออกเดินทาง

หากคุณเปลี่ยน class.localBoardingDateTime หรือ class.localEstimatedOrActualDepartureDateTime และเป็นไปตามเงื่อนไขด้านล่าง ระบบจะส่งการแจ้งเตือนว่ามีการเปลี่ยนแปลงฟิลด์

  • เหลือเวลาอีกไม่ถึง 24 ชั่วโมง ก่อนถึงclass.localScheduledDepartureDateTime
  • เวลาที่เกี่ยวข้องจะเปลี่ยนไปอย่างน้อย 10 นาทีหรือมากกว่านั้น

การแจ้งเตือนจะอยู่ในรูปแบบ "_Sample Airlines ได้อัปเดตเวลาขึ้นเครื่องเป็น 18:00 น._" คุณปรับแต่งรูปแบบหรือภาษาไม่ได้