एसिंक्रोनस ऑर्डर अपडेट

जब कोई ग्राहक खाने का ऑर्डर सबमिट करता है, तो आपके पास इस ईमेल पते पर ऑर्डर अपडेट करने का मैसेज भेजने का विकल्प होता है हम ग्राहक को इस बदलाव के बारे में सूचना देंगे.

ऑर्डर के अपडेट भेजने की कुछ सामान्य वजहें यहां दी गई हैं:

  • ऑर्डर पूरा होने का अनुमानित समय उपलब्ध हो जाता है या बदल जाता है.
  • ऑर्डर का स्टेटस बदल जाता है.
  • ऑर्डर अब पूरा नहीं किया जा सकता.
  • ऑर्डर में शामिल मेन्यू आइटम की कीमत बदल गई है.
  • ग्राहक के पास अपने ऑर्डर को मैनेज करने का एक नया तरीका है, जैसे कि ग्राहक सहायता या रेस्टोरेंट का फ़ोन नंबर बताओ.
  • ऑर्डर की रसीद उपलब्ध हो जाएगी.

अगले सेक्शन में, इन अलग-अलग स्थितियों को ठीक करने के तरीके के बारे में बताया गया है ऑर्डर अपडेट का इस्तेमाल करके.

ऑर्डर की स्थितियों का ट्रांज़िशन करना

किसी ऑर्डर में छह संभावित स्थितियां होती हैं. ये स्थितियां और उनके संभावित ट्रांज़िशन यहां दिए गए डायग्राम में दिखाया जा सकता है:

ऑर्डर की स्थिति से जुड़े ट्रांज़िशन

जब कोई ग्राहक पहली बार ऑर्डर सबमिट करता है, तो ऑर्डर की शुरुआत CREATED, CONFIRMED या REJECTED. आप इस पते पर ऑर्डर अपडेट करने का मैसेज भेज सकते हैं आदेश की स्थिति को तब तक अपडेट करें, जब तक कि स्थिति का संक्रमण मान्य होता रहे. CREATED अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है राज्य का इस्तेमाल तब किया जाता है, जब पार्टनर का प्लैटफ़ॉर्म ऑर्डर की पुष्टि या उसे अस्वीकार नहीं कर पाता तुरंत. इस्तेमाल का एक उदाहरण यह है कि जब कोई ग्राहक डिलीवरी के ज़रिए ऑर्डर करता है एग्रीगेटर. डिलीवरी एग्रीगेटर को Google से डिलीवरी मिलती है और एग्रीगेटर, रेस्टोरेंट को जानकारी भेजता है. रेस्टोरेंट को मिलने के बाद और ऑर्डर की उपलब्धता की पुष्टि कर दी है. राज्य अब CONFIRMED हो सकता है, वरना REJECTED.

CONFIRMED स्थिति के क्रम के बाद, वह IN_PREPARATION स्थिति में चला जाता है. ऑर्डर पिक अप के लिए है या डिलीवरी के लिए, इसके आधार पर READY_FOR_PICKUP या IN_TRANSIT में से किसी एक स्थिति का इस्तेमाल करें. खाना डिलीवर होने या पिक अप करने के बाद, ऑर्डर FULFILLED की स्थिति के हिसाब से सेट किया जाता है.

अगर आपने ग्राहकों को ऑर्डर रद्द करने की अनुमति दी है, तो CANCELLED राज्य का इस्तेमाल किया जा सकता है. CREATED, CONFIRMED, IN_PREPARATION, READY_FOR_PICKUP या IN_TRANSIT की स्थिति में होने पर ऑर्डर रद्द किया जा सकता है. सीधे तौर पर ऑर्डर करने वाली सेवा को रिफ़ंड जारी करना चाहिए. यह रिफ़ंड इस बात पर निर्भर करता है कि आपका रद्द करने की नीति और रद्द करते समय पेमेंट की स्थिति की जानकारी देता है.

सीधे खाना ऑर्डर करने की सुविधा, सभी उपलब्ध राज्यों में काम नहीं करती और ट्रांज़िशन शामिल हैं. हालांकि, ऑर्डर की आखिरी स्थिति FULFILLED होनी चाहिए, REJECTED या CANCELLED.

ऑर्डर पूरा होने में लगने वाला अनुमानित समय देना

उपयोगकर्ताओं को यह अनुमानित समयसीमा दी जा सकती है कि उनका ऑर्डर कब तक डिलीवर होगा पिकअप के लिए तैयार है या डिलीवर हो गया है. estimatedFulfillmentTimeIso8601 फ़ील्ड का इस्तेमाल करना अनुमानित समय सीमा उपलब्ध कराने के लिए FoodOrderUpdateExtension ग्राहक का ऑर्डर पिक अप के लिए तैयार हो जाएगा या डिलीवरी के लिए तैयार होगा.

estimatedFulfillmentTimeIso8601 को इस समय पर भेजें:

  • अनुमानित समय उपलब्ध होने पर, आम तौर पर CREATED के क्रम में या CONFIRMED राज्य.
  • अनुमानित समय में बदलाव होने पर, जैसे कि अनुमानित समय को अपडेट करना ऑर्डर IN_TRANSIT होने पर ज़्यादा सटीक होगा.

उपयोगकर्ताओं की उम्मीदों को बेहतर तरीके से मैनेज करने के लिए, अपने अनुमानों में कंज़र्वेशन को ध्यान में रखें और इससे आपको तय तारीख और समय के बजाय, तारीख और समयसीमा का पता चलेगा. आपको ऐसा करना चाहिए ट्रैफ़िक की स्थितियों जैसी विविधता को ध्यान में रखकर भी किया जा सकता है. इसके लिए उदाहरण के लिए, दोपहर 12:45 बजे का अनुमान (निचली सीमा) से दोपहर 1:15 बजे तक (ऊपरी सीमा) भेजा जा सकता है बाउंड) के मुताबिक, ऑर्डर की डिलीवरी का अनुमानित समय दोपहर 1:00 बजे है.

ऑर्डर मैनेजमेंट से जुड़ी कार्रवाइयां उपलब्ध कराना

ऑर्डर का अपडेट भेजते समय, ग्राहकों को ऐसे संसाधन उपलब्ध कराए जा सकते हैं जो वे अपने ऑर्डर को OrderManagementAction के तौर पर मैनेज करते हैं. एक कोई ऑर्डर करता है, तो उसे आपसे या रेस्टोरेंट से संपर्क करना पड़ सकता है प्रोग्रेस ट्रैक करने, बदलाव करने या अपने ऑर्डर को रद्द करने के लिए, ऑर्डर पूरा करना.

OrderManagementAction की मदद से ग्राहक यूआरएल को सीधे उनके डिवाइस से हटा दें. इसमें समान जानकारी का इस्तेमाल OrderManagementAction, जैसा कि इस ईमेल पते पर भेजा गया है: उपयोगकर्ता.

ऑर्डर मैनेज करने की कार्रवाइयों में ये शामिल हैं:

  • CUSTOMER_SERVICE: ग्राहकों को कार्रवाई करने की सुविधा दें, ताकि वे ग्राहक से संपर्क कर पाएं सेवा. मैनेजमेंट से जुड़ी यह कार्रवाई, ऑर्डर के अपडेट के लिए ज़रूरी है.
  • EMAIL: ग्राहकों को कार्रवाई करने की सुविधा दें, ताकि वे दिए गए पते पर ईमेल भेज सकें ईमेल पता.
  • CALL: ग्राहकों को दिए गए फ़ोन नंबर पर कॉल करने की सुविधा दें.
  • VIEW_DETAIL: ग्राहकों को कार्रवाई करने की सुविधा दें, ताकि वे ऑर्डर.

हर ऑर्डर अपडेट में, ऑर्डर मैनेजमेंट से जुड़ी कम से कम एक कार्रवाई होनी चाहिए. हालांकि, ऑर्डर मैनेज करने से जुड़ी उपलब्ध कार्रवाइयां, ऑर्डर की स्थिति के हिसाब से अलग-अलग हो सकती हैं. उदाहरण के लिए, जब कोई ऑर्डर CONFIRMED की स्थिति में होता है, तो CUSTOMER_SERVICE कार्रवाई से ग्राहक सेवा के फ़ोन नंबर के बारे में पता चल सकता है. जब उस ऑर्डर की स्थिति IN_TRANSIT के लिए अपडेट हैं, तो CUSTOMER_SERVICE की कार्रवाई ग्राहक को आइटम भेजने वाले रेस्टोरेंट का फ़ोन नंबर.

ऑर्डर के अपडेट भेजे जा रहे हैं

ऑर्डर भेजने के लिए, AsyncOrderUpdateRequestMessage तरह के मैसेज का इस्तेमाल किया जाता है सीधे ऑर्डर करने की सुविधा पर अपडेट करें. जवाब देने के लिए, Google AsyncOrderUpdateResponseMessage. उदाहरण के लिए, अगर आपको ग्राहक को यह बताना होगा कि उनका ऑर्डर मान्य और स्वीकार कर लिया गया है, तो आप ऑर्डर की स्थिति को CONFIRMED में बदलने के लिए AsyncOrderUpdateRequestMessage Accepted by restaurant लेबल के साथ.

ऑर्डर अपडेट करने का डायग्राम

ऑर्डर अपडेट करने के लिए मैसेज सेट करना

Google को AsyncOrderUpdateRequestMessage भेजते समय, आपको इसे OrderUpdate फ़ील्ड का इस्तेमाल करके, ऑर्डर की स्थिति के बारे में जानकारी.

नीचे दिए गए उदाहरणों में, इसके लिए AsyncOrderUpdateRequestMessage का सैंपल दिखाया गया है: हर ऑर्डर की स्थिति:

पुष्टि हो गई

इस उदाहरण में, ऑर्डर को अपडेट करने के अनुरोध का एक सैंपल दिखाया गया है. इससे लोगों को ऑर्डर के बारे में सूचना दी जाती है कि ऑर्डर की पुष्टि रसीद और अनुमानित डिलीवरी के साथ हो जाती है समय.

{
  "isInSandbox": true,
  "customPushMessage": {
    "orderUpdate": {
      "actionOrderId": "sample_action_order_id",
      "orderState": {
        "state": "CONFIRMED",
        "label": "Provider confirmed"
      },
      "receipt": {
        "userVisibleOrderId": "userVisibleId1234"
      },
      "updateTime": "2017-07-17T12:00:00Z",
      "orderManagementActions": [
        {
          "type": "CUSTOMER_SERVICE",
          "button": {
            "title": "Contact customer service",
            "openUrlAction": {
              "url": "mailto:support@example.com"
            }
          }
        },
        {
          "type": "EMAIL",
          "button": {
            "title": "Email restaurant",
            "openUrlAction": {
              "url": "mailto:person@example.com"
            }
          }
        },
        {
          "type": "CALL_RESTAURANT",
          "button": {
            "title": "Call restaurant",
            "openUrlAction": {
              "url": "tel:+16505554679"
            }
          }
        },
        {
          "type": "CALL_DRIVER",
          "button": {
            "title": "Call driver",
            "openUrlAction": {
              "url": "tel:+16505554681"
            }
          }
        }
      ],
      "infoExtension": {
        "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension",
        "estimatedFulfillmentTimeIso8601": "2017-07-17T13:00:00Z/2017-07-17T13:30:00Z"
      }
    }
  }
}
    

नामंजूर

इस उदाहरण में, ऑर्डर को अपडेट करने के अनुरोध का एक सैंपल दिखाया गया है. इससे लोगों को ऑर्डर के बारे में सूचना दी जाती है कि ऑर्डर अस्वीकार होने की वजह बताई गई है.

{
  "isInSandbox": true,
  "customPushMessage": {
    "orderUpdate": {
      "actionOrderId": "sample_action_order_id",
      "orderState": {
        "state": "REJECTED",
        "label": "Order rejected"
      },
      "updateTime": "2017-05-10T02:30:00.000Z",
      "rejectionInfo": {
        "type": "UNKNOWN",
        "reason": "Sorry, the restaurant cannot take your order right now."
      },
      "orderManagementActions": [
        {
          "type": "CUSTOMER_SERVICE",
          "button": {
            "title": "Contact customer service",
            "openUrlAction": {
              "url": "mailto:support@example.com"
            }
          }
        },
        {
          "type": "EMAIL",
          "button": {
            "title": "Email restaurant",
            "openUrlAction": {
              "url": "mailto:person@example.com"
            }
          }
        },
        {
          "type": "CALL_RESTAURANT",
          "button": {
            "title": "Call restaurant",
            "openUrlAction": {
              "url": "tel:+16505554679"
            }
          }
        },
        {
          "type": "CALL_DRIVER",
          "button": {
            "title": "Call driver",
            "openUrlAction": {
              "url": "tel:+16505554681"
            }
          }
        }
      ],
      "infoExtension": {
      "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension",
      "foodOrderErrors": [
        {
        "error": "NO_CAPACITY",
        "description": "Sorry, the restaurant cannot take your order right now."
        }
      ]
      }
    }
  }
}
    

रद्द कर दी गई

इस उदाहरण में, ऑर्डर को अपडेट करने के अनुरोध का एक सैंपल दिखाया गया है. इससे लोगों को ऑर्डर के बारे में सूचना दी जाती है कि ऑर्डर रद्द करने की वजह के साथ रद्द किया गया है.

{
  "isInSandbox": true,
  "customPushMessage": {
    "orderUpdate": {
      "actionOrderId": "sample_action_order_id",
      "orderState": {
        "state": "CANCELLED",
        "label": "Order cancelled"
      },
      "updateTime": "2017-05-10T02:30:00.000Z",
      "cancellationInfo": {
        "reason": "Customer requested"
      },
      "orderManagementActions": [
        {
          "type": "CUSTOMER_SERVICE",
          "button": {
            "title": "Contact customer service",
            "openUrlAction": {
              "url": "mailto:support@example.com"
            }
          }
        },
        {
          "type": "EMAIL",
          "button": {
            "title": "Email restaurant",
            "openUrlAction": {
              "url": "mailto:person@example.com"
            }
          }
        },
        {
          "type": "CALL_RESTAURANT",
          "button": {
            "title": "Call restaurant",
            "openUrlAction": {
              "url": "tel:+16505554679"
            }
          }
        },
        {
          "type": "CALL_DRIVER",
          "button": {
            "title": "Call driver",
            "openUrlAction": {
              "url": "tel:+16505554681"
            }
          }
        }
      ]
    }
  }
}
    

IN_PREPARATION

इस उदाहरण में, ऑर्डर को अपडेट करने के अनुरोध का एक सैंपल दिखाया गया है. इससे लोगों को ऑर्डर के बारे में सूचना दी जाती है कि खाना अभी पक रहा है.

{
  "isInSandbox":true,
  "customPushMessage":{
    "orderUpdate":{
      "actionOrderId":"sample_action_order_id",
      "orderState":{
        "state":"IN_PREPARATION",
        "label":"Order is being prepared"
      },
      "receipt": {
        "userVisibleOrderId": "userVisibleId1234"
      },
      "updateTime":"2018-04-15T11:30:00Z",
      "orderManagementActions": [
        {
          "type": "CUSTOMER_SERVICE",
          "button": {
            "title": "Contact customer service",
            "openUrlAction": {
              "url": "mailto:support@example.com"
            }
          }
        },
        {
          "type": "EMAIL",
          "button": {
            "title": "Email restaurant",
            "openUrlAction": {
              "url": "mailto:person@example.com"
            }
          }
        },
        {
          "type": "CALL_RESTAURANT",
          "button": {
            "title": "Call restaurant",
            "openUrlAction": {
              "url": "tel:+16505554679"
            }
          }
        },
        {
          "type": "CALL_DRIVER",
          "button": {
            "title": "Call driver",
            "openUrlAction": {
              "url": "tel:+16505554681"
            }
          }
        }
      ],
      "infoExtension":{
        "@type":"type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension",
        "estimatedFulfillmentTimeIso8601":"PT20M"
      }
    }
  }
}
    

READY_FOR_PICKUP

इस उदाहरण में, ऑर्डर को अपडेट करने के अनुरोध का एक सैंपल दिखाया गया है. इससे लोगों को ऑर्डर के बारे में सूचना दी जाती है खाना ले जाने के लिए तैयार है.

{
  "isInSandbox": true,
  "customPushMessage": {
    "orderUpdate": {
      "actionOrderId": "sample_action_order_id",
      "orderState": {
        "state": "READY_FOR_PICKUP",
        "label": "Order is ready for pickup"
      },
      "receipt": {
        "userVisibleOrderId": "userVisibleId1234"
      },
      "updateTime": "2018-04-15T12:00:00Z",
      "orderManagementActions": [
        {
          "type": "CUSTOMER_SERVICE",
          "button": {
            "title": "Contact customer service",
            "openUrlAction": {
              "url": "mailto:support@example.com"
            }
          }
        },
        {
          "type": "EMAIL",
          "button": {
            "title": "Email restaurant",
            "openUrlAction": {
              "url": "mailto:person@example.com"
            }
          }
        },
        {
          "type": "CALL_RESTAURANT",
          "button": {
            "title": "Call restaurant",
            "openUrlAction": {
              "url": "tel:+16505554679"
            }
          }
        },
        {
          "type": "CALL_DRIVER",
          "button": {
            "title": "Call driver",
            "openUrlAction": {
              "url": "tel:+16505554681"
            }
          }
        }
      ],
      "infoExtension": {
        "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension",
        "estimatedFulfillmentTimeIso8601": "PT20M"
      }
    }
  }
}
    

IN_TRANSIT

इस उदाहरण में, ऑर्डर को अपडेट करने के अनुरोध का एक सैंपल दिखाया गया है. इससे लोगों को ऑर्डर के बारे में सूचना दी जाती है यह कि ऑर्डर डिलीवरी के अनुमानित समय के साथ ट्रांज़िट में है.

{
  "isInSandbox": true,
  "customPushMessage": {
    "orderUpdate": {
      "actionOrderId": "sample_action_order_id",
      "orderState": {
        "state": "IN_TRANSIT",
        "label": "Order is on the way"
      },
      "inTransitInfo": {
        "updatedTime": "2017-07-17T12:00:00Z"
      },
      "updateTime": "2017-07-17T12:00:00Z",
      "orderManagementActions": [
        {
          "type": "CUSTOMER_SERVICE",
          "button": {
            "title": "Contact customer service",
            "openUrlAction": {
              "url": "mailto:support@example.com"
            }
          }
        },
        {
          "type": "EMAIL",
          "button": {
            "title": "Email restaurant",
            "openUrlAction": {
              "url": "mailto:person@example.com"
            }
          }
        },
        {
          "type": "CALL_RESTAURANT",
          "button": {
            "title": "Call restaurant",
            "openUrlAction": {
              "url": "tel:+16505554679"
            }
          }
        },
        {
          "type": "CALL_DRIVER",
          "button": {
            "title": "Call driver",
            "openUrlAction": {
              "url": "tel:+16505554681"
            }
          }
        }
      ],
      "infoExtension": {
        "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension",
        "estimatedFulfillmentTimeIso8601": "PT20M"
      }
    }
  }
}
  

पूरा भरा गया

इस उदाहरण में, ऑर्डर को अपडेट करने के अनुरोध का एक सैंपल दिखाया गया है. इससे लोगों को ऑर्डर के बारे में सूचना दी जाती है यह कि ऑर्डर पिक अप हो चुका है या डिलीवर हो चुका है:

{
  "isInSandbox": true,
  "customPushMessage": {
    "orderUpdate": {
      "actionOrderId": "sample_action_order_id",
      "orderState": {
      "state": "FULFILLED",
      "label": "Order delivered"
      },
      "updateTime": "2017-05-10T02:30:00.000Z",
      "fulfillmentInfo": {
        "deliveryTime": "2017-05-10T02:30:00.000Z"
      },
      "orderManagementActions": [
        {
          "type": "CUSTOMER_SERVICE",
          "button": {
            "title": "Contact customer service",
            "openUrlAction": {
              "url": "mailto:support@example.com"
            }
          }
        },
        {
          "type": "EMAIL",
          "button": {
            "title": "Email restaurant",
            "openUrlAction": {
              "url": "mailto:person@example.com"
            }
          }
        },
        {
          "type": "CALL_RESTAURANT",
          "button": {
            "title": "Call restaurant",
            "openUrlAction": {
              "url": "tel:+16505554679"
            }
          }
        },
        {
          "type": "CALL_DRIVER",
          "button": {
            "title": "Call driver",
            "openUrlAction": {
              "url": "tel:+16505554681"
            }
          }
        }
      ]
    }
  }
}
    

इस्तेमाल के अलग-अलग उदाहरणों में, ऑर्डर अपडेट करने के अनुरोधों के और उदाहरण देखने के लिए, पढ़ें ऑर्डर के लिए बेहतर अपडेट लागू करना.

अनुमति वाला टोकन जनरेट करें और मैसेज भेजें

ऑर्डर अपडेट करने के लिए अनुमति वाले टोकन की ज़रूरत होती है, ताकि ऑर्डर पूरा करने के लिए सेवा यह पुष्टि कर सकती है कि संदेश आपकी ऑर्डरिंग एंड-टू-एंड वेब सेवा से है.

अपने प्रोजेक्ट के ऑर्डर के अपडेट लागू करने के लिए, यह तरीका अपनाएं:

  1. यह तरीका अपनाकर, ऑथराइज़ेशन टोकन जनरेट करें:
    1. अपनी सेवा से क्रेडेंशियल पढ़ने के लिए Google प्राधिकरण लाइब्रेरी का उपयोग करें खाता फ़ाइल.
    2. नीचे दिए गए एपीआई के दायरे का इस्तेमाल करके, टोकन के लिए अनुरोध करें: https://www.googleapis.com/auth/actions.fulfillment.conversation अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
  2. इस टोकन का इस्तेमाल करके नीचे दिया गया एंडपॉइंट: https://actions.googleapis.com/v2/conversations:send
  3. अपने अनुरोध के हिसाब से, Content-Type हेडर को application/json पर सेट करें.

नीचे दिए गए उदाहरणों में, ऑर्डर के अपडेट लागू करने का तरीका बताया गया है:

Node.js

यह कोड Node.js के लिए Google की पुष्टि करने वाली लाइब्रेरी का इस्तेमाल करता है.

const {auth} = require('google-auth-library')
const request = require('request');
// The service account client secret file downloaded from the Google Cloud Console
const serviceAccountJson = require('./service-account.json')
// order-update.json is a file that contains the payload
const jsonBody = require('./order-update.json')

/**
 * Get the authorization token using a service account.
 */
async function getAuthToken() {
  let client = auth.fromJSON(serviceAccountJson)
  client.scopes = ['https://www.googleapis.com/auth/actions.fulfillment.conversation']
  const tokens = await client.authorize()
  return tokens.access_token;
}

/**
 * Send an order update request
 */
async function sendOrderUpdate() {
  const token = await getAuthToken()
  request.post({
    headers: {
      'Content-Type': 'application/json',
      'Authorization': `Bearer ${token}`
    },
    url: 'https://actions.googleapis.com/v2/conversations:send',
    body: jsonBody,
    json: true
  },
  (err, res, body) => {
    if (err) { return console.log(err); }
    console.log(`Response: ${JSON.stringify(res)}`)
  })
}
    

Python

यह कोड, Python के लिए Google की पुष्टि करने वाली लाइब्रेरी का इस्तेमाल करता है.

from google.oauth2 import service_account
from google.auth.transport.requests import AuthorizedSession
import json

# service-account.json is the service account client secret file downloaded from the
# Google Cloud Console
credentials = service_account.Credentials.from_service_account_file(
    'service-account.json')

scoped_credentials = credentials.with_scopes(
    ['https://www.googleapis.com/auth/actions.fulfillment.conversation'])

authed_session = AuthorizedSession(scoped_credentials)

# order-update.json is a file that contains the payload
json_payload=json.load(open('order-update.json'))

response = authed_session.post(
    'https://actions.googleapis.com/v2/conversations:send',
    json=json_payload)
    

Java

यह कोड Java के लिए Google की पुष्टि करने वाली लाइब्रेरी का इस्तेमाल करता है.

/**
 * Get the authorization token using a service account.
 */
private static String getAuthToken() {
  InputStream serviceAccountFile = Example.class.getClassLoader().getResourceAsStream("service-account.json");
  ServiceAccountCredentials.Builder credentialsSimpleBuilder =
      ServiceAccountCredentials.fromStream(serviceAccountFile).toBuilder();
  credentialsSimpleBuilder.setScopes(ImmutableList.of("https://www.googleapis.com/auth/actions.fulfillment.conversation"));
  AccessToken accessToken = credentialsSimpleBuilder.build().refreshAccessToken();
  return accessToken.getTokenValue();
}

/**
 * Send an order update request
 */
public void sendOrderUpdate() {
  String authToken = getAuthToken();
  // Execute POST request
  executePostRequest("https://actions.googleapis.com/v2/conversations:send",
      authToken, "update_order_example.json",);
}
    

बिना किसी गड़बड़ी के सफल ऑर्डर अपडेट के लिए, Google एक एचटीटीपी 200 रिस्पॉन्स दिखाता है जिसमें पेलोड खाली हो. अगर कोई समस्या थी, जैसे कि अपडेट गलत फ़ॉर्मैट में, Google गड़बड़ी दिखाता है.