{"id":175070,"date":"2021-03-30T17:51:51","date_gmt":"2021-03-31T00:51:51","guid":{"rendered":"https:\/\/m2msupport.net\/m2msupport\/?page_id=175070"},"modified":"2021-08-10T06:43:49","modified_gmt":"2021-08-10T13:43:49","slug":"google-cloud-iot-tutorial","status":"publish","type":"page","link":"https:\/\/m2msupport.net\/m2msupport\/google-cloud-iot-tutorial\/","title":{"rendered":"Test your end-to-end IoT solution on Google Cloud Platform &#8211; Start with free trial"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p><\/p>\n\n\n<p><a href=\"https:\/\/m2msupport.net\/m2msupport\/download-iot-cloud-tester\/\">IoT Cloud Tester<\/a>\u00a0 is a desktop application that enables users to learn and test their end-to-end IoT solution on the Google Cloud Platform (GCP).<\/p>\n<p>IoT Cloud Tester application enables users to create virtual devices and gateways in GCP&#8217;s Cloud IoT Core. Users can define custom data model for the devices, the application will generate automated data based on the data model constraints. The application also generates and maintains device keys which are required to communicate with GCP.<\/p>\n<p>Devices publish messages to topics through the MQTT bridge. Users can create subscriptions to topics in GCP. IoT Cloud Tester application also enables users to create and maintain subscribers that listen to one or more subscriptions. The Pub\/Sub Monitor window of the application shows the real-time pub\/sub messages. Users can also setup dataflows to write the pub\/sub topic messages to BigQuery or to write pub\/sub subscriber messages to BigQuery.<\/p>\n<p><strong>Free Trial<\/strong> &#8211;\u00a0 Begin with free trial of Google Cloud and IoT Cloud Tester.<\/p>\n<p><strong>No hardware required<\/strong> &#8211; Create virtual gateways and devices with IoT Cloud Tester.<\/p>\n<p><strong>Test end-to-end<\/strong> &#8211; Develop and test your end-to-end IoT solution on Google Cloud Platform using IoT Cloud Tester<\/p>\n<h3>IoT Cloud Tester &#8211; Quick Start<\/h3>\n<ul>\n<li>Start with <a href=\"https:\/\/cloud.google.com\/free\/docs\/gcp-free-tier\">Google Cloud Free program.<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/add-google-cloud-platform-gcp-project-to-iot-cloud-tester\/\">Add your GCP project<\/a> to the IoT Cloud Tester application.<\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/add-topics-in-google-cloud-platform-gcp-using-iot-cloud-tester\/\">Add topic<\/a> and <a href=\"https:\/\/m2msupport.net\/m2msupport\/add-device-registry-in-google-cloud-platform-gcp-using-iot-cloud-tester\/\">device registry<\/a> using the application.<\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/add-a-device-in-google-cloud-platform-gcp-using-iot-cloud-tester\/\">Add a device.<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/publish-without-gateway-through-mqtt-bridge-in-google-cloud-platform-gcp\/\">Publish data from the device<\/a> to GCP through MQTT bridge.<\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/create-a-subscriber-to-a-topic-subscription-in-google-cloud-platform-gcp\/\">Create a subscriber<\/a>\u00a0and <a href=\"https:\/\/m2msupport.net\/m2msupport\/subscriber-listen-to-subscription-topic-messages-in-google-cloud-platform-gcp\/\">listen to messages<\/a> from subscribed topics.<\/li>\n<li>Set up a Dataflow to <a href=\"https:\/\/m2msupport.net\/m2msupport\/setup-a-dataflow-to-write-topics-to-biqquery-in-google-cloud-platform-gcp\/\">write pub\/sub topic messages to BigQuery<\/a> or <a href=\"https:\/\/m2msupport.net\/m2msupport\/setup-a-dataflow-to-write-messages-from-pub-sub-subscription-to-biqquery-table-in-google-cloud-platform-gcp\/\">pub\/sub subscriber messages to BigQuery<\/a><\/li>\n<\/ul>\n<p>\u00a0<\/p>\n<p><a href=\"https:\/\/m2msupport.net\/m2msupport\/wp-content\/uploads\/2021\/08\/iot_cloud_tester_overview.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-192530\" src=\"https:\/\/m2msupport.net\/m2msupport\/wp-content\/uploads\/2021\/08\/iot_cloud_tester_overview.png\" alt=\"\" width=\"1142\" height=\"767\" srcset=\"https:\/\/m2msupport.net\/m2msupport\/wp-content\/uploads\/2021\/08\/iot_cloud_tester_overview.png 1142w, https:\/\/m2msupport.net\/m2msupport\/wp-content\/uploads\/2021\/08\/iot_cloud_tester_overview-300x201.png 300w, https:\/\/m2msupport.net\/m2msupport\/wp-content\/uploads\/2021\/08\/iot_cloud_tester_overview-768x516.png 768w, https:\/\/m2msupport.net\/m2msupport\/wp-content\/uploads\/2021\/08\/iot_cloud_tester_overview-1024x688.png 1024w, https:\/\/m2msupport.net\/m2msupport\/wp-content\/uploads\/2021\/08\/iot_cloud_tester_overview-600x403.png 600w\" sizes=\"auto, (max-width: 1142px) 100vw, 1142px\" \/><\/a><\/p>\n<p>\u00a0<\/p>\n<h2><a href=\"https:\/\/m2msupport.net\/m2msupport\/wp-content\/uploads\/2021\/08\/iot_cloud_tester-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-192965\" src=\"https:\/\/m2msupport.net\/m2msupport\/wp-content\/uploads\/2021\/08\/iot_cloud_tester-1.png\" alt=\"\" width=\"852\" height=\"730\" srcset=\"https:\/\/m2msupport.net\/m2msupport\/wp-content\/uploads\/2021\/08\/iot_cloud_tester-1.png 852w, https:\/\/m2msupport.net\/m2msupport\/wp-content\/uploads\/2021\/08\/iot_cloud_tester-1-300x257.png 300w, https:\/\/m2msupport.net\/m2msupport\/wp-content\/uploads\/2021\/08\/iot_cloud_tester-1-768x658.png 768w, https:\/\/m2msupport.net\/m2msupport\/wp-content\/uploads\/2021\/08\/iot_cloud_tester-1-600x514.png 600w\" sizes=\"auto, (max-width: 852px) 100vw, 852px\" \/><\/a><\/h2>\n<h2><a href=\"https:\/\/m2msupport.net\/m2msupport\/wp-content\/uploads\/2021\/08\/pubsub.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-192967\" src=\"https:\/\/m2msupport.net\/m2msupport\/wp-content\/uploads\/2021\/08\/pubsub.png\" alt=\"\" width=\"835\" height=\"656\" srcset=\"https:\/\/m2msupport.net\/m2msupport\/wp-content\/uploads\/2021\/08\/pubsub.png 835w, https:\/\/m2msupport.net\/m2msupport\/wp-content\/uploads\/2021\/08\/pubsub-300x236.png 300w, https:\/\/m2msupport.net\/m2msupport\/wp-content\/uploads\/2021\/08\/pubsub-768x603.png 768w, https:\/\/m2msupport.net\/m2msupport\/wp-content\/uploads\/2021\/08\/pubsub-600x471.png 600w\" sizes=\"auto, (max-width: 835px) 100vw, 835px\" \/><\/a><\/h2>\n<h2>Google Cloud Platform (GCP) Account Setup<\/h2>\n<ul>\n<li>Start with <a href=\"https:\/\/cloud.google.com\/free\/docs\/gcp-free-tier\">Google Cloud Free program<\/a> to evaluate and test Google Cloud Platform (GCP) by setting up an account.<\/li>\n<li>Once an account is setup, <a href=\"https:\/\/m2msupport.net\/m2msupport\/how-to-create-a-new-project-in-google-cloud-platform\/\">create a new project in Google Cloud Platform (GCP)<\/a> or use the default project for this tutorial.<\/li>\n<\/ul>\n<h2>Google Cloud Project<\/h2>\n<ul>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/generate-service-account-key-in-google-cloud-platform-gcp\/\">Generate the service account key<\/a> for the project in GCP.<\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/enable-cloud-resource-manager-api-in-google-cloud-platform-gcp\/\">Enable Cloud Resource Manager API<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/verify-service-account-in-google-cloud-platform-gcp\/\">Verify the service account<\/a> in the IoT Cloud Tester application<\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/enable-cloud-iot-api-in-google-cloud-platform-gcp\/\">Enable Cloud IoT API<\/a> for the IoT Cloud Tester application to use IoT APIs for the project.<\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/enable-cloud-pub-sub-api-in-google-cloud-platform-gcp\/\">Enable Cloud Pub\/Sub API<\/a>\u00a0for the IoT Cloud Tester application to use Pub\/Sub APIs for the project.<\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/add-google-cloud-platform-gcp-project-to-iot-cloud-tester\/\">Add GCP project<\/a> to IoT Cloud Tester<\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/view-google-cloud-platform-gcp-project-details-in-iot-cloud-tester\/\">View GCP project<\/a> info in IoT Cloud Tester. This view provides information about project name, id, creation date and service account details.<\/li>\n<li>\u00a0<a href=\"https:\/\/m2msupport.net\/m2msupport\/remove-google-cloud-platform-gcp-project-in-the-iot-cloud-tester\/\">Remove GCP project<\/a> from the IoT Cloud Tester. Note the project is not removed in the Google Cloud Platform.<\/li>\n<li>\u00a0Multiple projects can be added and the<a href=\"https:\/\/m2msupport.net\/m2msupport\/set-the-current-google-cloud-platform-gcp-project-in-the-iot-cloud-tester\/\"> current active project<\/a> can be selected in the IoT Cloud Tester.<\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/google-cloud-iot-scopes-cloud-platform-cloud-iot\/\">Google Cloud IoT scopes<\/a> &#8211; Use scopes to setup right permission for the application.<\/li>\n<\/ul>\n<h2>Topics\u00a0<\/h2>\n<p>Topics are used by devices to publish messages.<\/p>\n<ul>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/add-topics-in-google-cloud-platform-gcp-using-iot-cloud-tester\/\">Add topics in Google Cloud<\/a>\u00a0&#8211; In the pub\/sub messaging system, messages are published to &#8220;topics&#8221; which are logical channels. For example, devices that are monitoring weather may publish the temperature data periodically to a topic called &#8216;temperature&#8217;.\u00a0 Anyone subscribed to that topic will receive messages published to that topic. In Google Cloud, topics are created at the project level.<\/li>\n<li>\u00a0<a href=\"http:\/\/IoT Cloud Tester application.\">Delete topic in Google Cloud<\/a>\u00a0 &#8211;\u00a0 Users can delete unused topics in the Google Cloud.<\/li>\n<\/ul>\n<h2>Device Registries<\/h2>\n<p>Devices are added to Device Registries in the Google Cloud. Device registries defines the protocols used by the device (MQTT\/HTTP), logging levels and the topics.<\/p>\n<ul>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/add-device-registry-in-google-cloud-platform-gcp-using-iot-cloud-tester\/\">Add device registry<\/a>\u00a0&#8211;\u00a0\u00a0Device registries are containers of devices that share common properties. A project may contain one or more device registries. With <a href=\"https:\/\/m2msupport.net\/m2msupport\/download-iot-cloud-tester\/\">IoT Cloud Tester<\/a>, users can setup the registry ID, protocol, logging level, topics while creating the device registry.<\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/update-device-registry-in-google-cloud-platform-gcp-using-iot-cloud-tester\/\">Update device registry<\/a>\u00a0&#8211; Users can update the device registry information such as protocol, logging and topic assignments.<\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/delete-device-registry-in-google-cloud-platform-gcp-using-iot-cloud-tester\/\">Delete device registry<\/a>\u00a0&#8211; Users can get the list of device registries and delete any registry from the list.\u00a0<\/li>\n<\/ul>\n<h2>Gateways<\/h2>\n<p>Gateway devices communicate with the Google Cloud Platform on behalf of their client devices.<\/p>\n<ul>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/add-a-gateway-device-in-google-cloud-platform-gcp-using-iot-cloud-tester\/\">Add a gateway<\/a>\u00a0&#8211; Gateway is a device that connects its clients to the Google Cloud Platform. For example, a cellular-enabled Zigbee gateway device may send data from Zigbee client devices to the Google Cloud platform. With\u00a0<a href=\"https:\/\/m2msupport.net\/m2msupport\/download-iot-cloud-tester\/\">IoT Cloud Tester<\/a>, a user can create a new Gateway device within a device registry of a project.<\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/get-the-list-of-gateway-devices-in-google-cloud-platform-gcp-using-iot-cloud-tester\/\">Get a list of gateways<\/a>\u00a0&#8211; Users can get the list of gateway devices within a registry.\u00a0<a href=\"https:\/\/m2msupport.net\/m2msupport\/download-iot-cloud-tester\/\">IoT Cloud Tester<\/a>\u00a0application will display the Gateway ID and the bounded devices for that Gateway in the list view.<\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/bind-device-to-a-gateway-in-google-cloud-platform-gcp-using-iot-cloud-tester\/\">Bind device to a gateway<\/a>\u00a0&#8211;\u00a0<\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/unbind-device-from-a-gateway-in-google-cloud-platform-gcp-using-iot-cloud-tester\/\">Unbind device from a gateway<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/delete-a-gateway-in-google-cloud-platform-gcp-using-iot-cloud-tester\/\">Delete a gateway<\/a><\/li>\n<\/ul>\n<h3>Devices<\/h3>\n<p>Devices connect to Google Cloud Platform and send\/receive data through MQTT or HTTP.<\/p>\n<ul>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/add-a-device-in-google-cloud-platform-gcp-using-iot-cloud-tester\/\">Add a device<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/get-a-list-iot-devices-in-device-registry-from-google-cloud-platform-gcp-using-iot-cloud-tester\/\">Get a list of devices i<\/a>n a device registry<\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/delete-a-iot-device-from-device-registry-in-google-cloud-platform-gcp-using-iot-cloud-tester\/\">Delete a device<\/a> from a device registry<\/li>\n<\/ul>\n<h3>Data Models<\/h3>\n<p>Data models define the data that the devices will send to the Google Cloud Platform. The IoT Cloud Tester application will auto-generate data based on the data model associated to the device.<\/p>\n<ul>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/create-a-data-model-for-a-iot-device-using-iot-cloud-tester\/\">Add a data model<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/update-a-data-model-for-a-iot-device-using-iot-cloud-tester\/\">Edit a data model<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/delete-a-data-model-in-iot-cloud-tester\/\">Delete a data model<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/get-the-list-of-data-models-in-iot-cloud-tester\/\">Get the list of data models<\/a><\/li>\n<\/ul>\n<h3>Publish<\/h3>\n<p>Devices publish data to Google Cloud platform using the Message Queue Telemetry Transport (MQTT) protocol.<\/p>\n<ul>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/publish-through-mqtt-bridge-in-google-cloud-platform-gcp\/\">Publish with gateway<\/a><\/li>\n<li>\u00a0<a href=\"https:\/\/m2msupport.net\/m2msupport\/publish-without-gateway-through-mqtt-bridge-in-google-cloud-platform-gcp\/\">Publish without gateway<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/publish-with-quality-of-service-qos-1-to-mqtt-bridge-in-google-cloud-platform-gcp\/\">Publish with QoS 1<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/publish-with-quality-of-service-qos-0-to-mqtt-bridge-in-google-cloud-platform-gcp\/\">Publish with QoS 0<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/publish-with-quality-of-service-qos-2-to-mqtt-bridge-is-not-supported-in-google-cloud-platform-gcp\/\">QoS 2 is not supported in Google Cloud platform<\/a><\/li>\n<\/ul>\n<h3>Subscription<\/h3>\n<p>Subscriptions to topics enable subscribers to listed to messages published for the topic.<\/p>\n<ul>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/create-subscription-to-topic-in-google-cloud-platform-gcp\/\">Create a pull subscription<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/create-subscription-to-topic-in-google-cloud-platform-gcp\/\">Create a push subscription<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/get-a-list-of-subscriptions-in-google-cloud-platform-gcp\/\">Get a list of subscriptions<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/delete-a-subscripion-in-google-cloud-platform-gcp\/\">Delete subscription to a topic<\/a><\/li>\n<\/ul>\n<h3>Subscribers<\/h3>\n<ul>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/create-a-subscriber-to-a-topic-subscription-in-google-cloud-platform-gcp\/\">Create a subscriber<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/delete-a-subscriber-in-google-cloud-platform-gcp\/\">Edit a subscriber<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/delete-a-subscriber-in-google-cloud-platform-gcp\/\">Delete a subscriber<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/subscriber-listen-to-subscription-topic-messages-in-google-cloud-platform-gcp\/\">Subscriber &#8211; Get messages published to subscribed topics<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/receive-subscribed-messages-in-url-endpoint-from-google-cloud-platform-gcp\/\">Get subscribed messages in URL endpoint<\/a><\/li>\n<\/ul>\n<h3>Cloud Storage<\/h3>\n<ul>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/create-a-cloud-storage-bucket-in-google-cloud-platform-gcp\/\">Create a cloud storage bucket<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/get-the-list-of-cloud-storage-buckets-in-google-cloud-platform-gcp\/\">Get the list of cloud storage buckets<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/delete-a-cloud-storage-bucket-in-google-cloud-platform-gcp\/\">Delete a cloud storage bucket<\/a><\/li>\n<\/ul>\n<h3>Big Query<\/h3>\n<ul>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/create-a-bigquery-dataset-in-google-cloud-platform-gcp\/\">Create a dataset in BigQuery<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/get-the-list-of-bigquery-datasets-in-a-project-in-google-cloud-platform-gcp\/\">Get the list of datasets<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/delete-a-bigquery-dataset-in-in-google-cloud-platform-gcp\/\">Delete a dataset<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/create-a-table-in-bigquery-dataset-in-google-cloud-platform-gcp\/\">Create a table within a dataset<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/get-the-list-of-tables-in-bigquery-dataset-in-google-cloud-platform-gcp\/\">Get the list of\u00a0 tables in a dataset<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/delete-a-table-in-bigquery-dataset-in-google-cloud-platform-gcp\/\">Delete a table<\/a><\/li>\n<\/ul>\n<h3>Dataflow<\/h3>\n<ul>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/setup-a-dataflow-to-write-topics-to-biqquery-in-google-cloud-platform-gcp\/\">Setup a dataflow to write pub\/sub messages from a topic to a BigQuery table<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/setup-a-dataflow-to-write-messages-from-pub-sub-subscription-to-biqquery-table-in-google-cloud-platform-gcp\/\">Setup a dataflow to write pub\/sub messages from a subscription to a BigQuery table<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/get-a-list-of-dataflow-jobs-in-google-cloud-platform-gcp\/\">Get the list of dataflow jobs in the project<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/cancel-a-dataflow-job-in-google-cloud-platform-gcp\/\">Cancel a dataflow in the project<\/a><\/li>\n<\/ul>\n<p>\u00a0<\/p>\n<h3>Error Conditions<\/h3>\n<ul>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/error-getting-access-token-for-service-account-400-bad-request-post-https-oauth2-googleapis-com-token-errorinvalid_granterror_descriptioninvalid-grant-account-not-found\/\">Error getting access token for service account<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/unexpected-exception-reading-pkcs8-data-reading-private-key\/\">Unexpected exception reading PKCS#8 data<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/grant-the-service-account-access-to-project-in-google-cloud-platform-gcp\/\">Project access not granted to the service account<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/cloud-resource-manager-api-has-not-been-used-in-project-before-or-it-is-disabled-enable-it-by-visiting-https-console-developers-google-com-apis-api-cloudresourcemanager-googleapis-com-overviewpro\/\">Cloud Resource API is not enabled<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/cloud-pub-sub-api-has-not-been-used-in-project-before-or-it-is-disabled\/\">Cloud Pub\/Sub API is not enabled<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/cloud-iot-api-has-not-been-used-in-project-before-or-it-is-disabled\/\">Cloud IoT API is not enabled<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/invalid_argument-invalid-resource-name-given-google-cloud-api-error\/\">Invalid resource names given<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/the-cloud-region-isnt-supported-valid-regions-asia-east1europe-west1us-central1\/\">Cloud region isn&#8217;t supported<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/scopes-not-configured-for-service-account\/\">Scopes not configured for service account.<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/mqtt-connection-not-authorized-to-connect-google-iot\/\">MQTT Connection Error &#8211; Not authorized to connect<\/a><\/li>\n<li><a href=\"https:\/\/m2msupport.net\/m2msupport\/the-registry-with-the-name-cant-be-deleted-because-its-not-empty-google-cloud\/\">The registry cannot be deleted<\/a><\/li>\n<\/ul>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>IoT Cloud Tester\u00a0 is a desktop application that enables users to learn and test their end-to-end IoT solution on the Google Cloud Platform (GCP). IoT Cloud Tester application enables users to create virtual devices and gateways in GCP&#8217;s Cloud IoT &hellip; <a href=\"https:\/\/m2msupport.net\/m2msupport\/google-cloud-iot-tutorial\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"iot_tutorial_template.php","meta":{"footnotes":""},"class_list":["post-175070","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/m2msupport.net\/m2msupport\/wp-json\/wp\/v2\/pages\/175070","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/m2msupport.net\/m2msupport\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/m2msupport.net\/m2msupport\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/m2msupport.net\/m2msupport\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/m2msupport.net\/m2msupport\/wp-json\/wp\/v2\/comments?post=175070"}],"version-history":[{"count":76,"href":"https:\/\/m2msupport.net\/m2msupport\/wp-json\/wp\/v2\/pages\/175070\/revisions"}],"predecessor-version":[{"id":193241,"href":"https:\/\/m2msupport.net\/m2msupport\/wp-json\/wp\/v2\/pages\/175070\/revisions\/193241"}],"wp:attachment":[{"href":"https:\/\/m2msupport.net\/m2msupport\/wp-json\/wp\/v2\/media?parent=175070"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}