Package Summary
Tags | No category tags. |
Version | 2.1.31 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-05-13 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Kei Okada
Authors
- Yoshiki Obinata
Google Chat ROS
The ROS wrapper for Google Chat API
- Installation Guide
- Sending the message
- Receiving the message
- Handling the event
- Optional functions
- Helper nodes
1. Installation Guide
1.1 Get the API KEY
At first, you should have the permission to access the Google Chat API.
See Google Official Document. Please ensure to get JSON credetial file and save it. DO NOT LOST IT!
For JSK members, all keys are available at Google Drive. If you make new API keys, please upload them here.
1.2 Select the way how to recieve Google Chat event
The way you recieve Google Chat event from API server depends on your system. If your system has static IP and is allowed to recieve https request with specific port, please see HTTPS mode. If not, please see Pub/Sub mode.
HTTPS mode
When you send the message, the node uses Google REST API. When you recieve the message, Google Chat API sends https request to your machine and the node handles it.
You have to prepare SSL certificate. Self-signed one is not available because of Google security issue. Please use the service like Let’s Encrypt. In Google Cloud console, please choose App URL
as connection settings and fill the URL in the App URL form.
Pub/Sub mode
When you send the message, the node uses Google REST API. When you recieve the message, the node uses Google Pub/Sub API’s subscription. The node has already established its connection to Google Pub/Sub API when you launch it.
The way how to set up in Google Cloud console shows below.
1. Authorize the existing Google Chat API project to access Google Cloud Pub/Sub service
In IAM settings in the console, please add the role Pub/Sub Admin
to service account.
2. Create Pub/Sub topic and subscriber
In Pub/Sub settings in the console, please add the topic and subscriptions.
In the figure, we set the topic name chat
, the subscription name chat-sub
as an example.
Note that if you set the topic name chat
, the full name of it becomes projects/<project_name>/topics/chat
. Please confirm the subsciptions subscribes the full name not short one.
3. Grant publish rigts on your topic
In order for Google Chat to publish messages to your topic, it must have publishing rights to the topic. To grant Google Chat these permissions, assign the Pub/Sub Publisher role to the following service account
chat-api-push@system.gserviceaccount.com
4. Set Google Chat API Connection settings
Please choose Cloud Pub/Sub
as connection settings and fill the full topic name in the Topic Name form.
1.3 Install/Build the ROS node
If you want to build from the source
source /opt/ros/${ROS_DISTRO}/setup.bash
mkdir -p ~/catkin_ws/src && cd ~/catkin_ws/src
git clone https://github.com/jsk-ros-pkg/jsk_3rdparty
rosdep install --ignore-src --from-paths . -y -r
cd ..
catkin build
1.4 Launch the node
HTTPS mode
You have to set rosparams receiving_mode=https
, google_cloud_credentials_json
, host
, port
, ssl_certfile
, ssl_keyfile
.
Pub/Sub mode
You have to set rosparams receiving_mode=pubsub
, google_cloud_credentials_json
, project_id
, subscription_id
. subscription_id
would be chat-sub
if you follow Pub/Sub mode example.
Example
roslaunch google_chat_ros google_chat.launch receiving_mode:=pubsub google_cloud_credentials_json:=/path/to/<project_id>-XXXXXXXX.json project_id:=<project_id> subscription_id:=chat-sub
2. Sending the message
2.1 Understanding Google Chat Room
When you see Google Chat UI with browsers or smartphone’s apps, you may see space
, thread
. If you send new message, you must specify the space or thread you want to send the message to. You can get the space name from chat room’s URL. If it is https://mail.google.com/chat/u/0/#chat/space/XXXXXXXXXXX
, XXXXXXXXXXX
becomes the space name.
2.2 Message format
There are 2 types of messages, text and card. The card basically follows the original json structure. As the node covers all the units in here with ros action msgs, it may be complicated for you if you want to use all of them. So in Examples sections, we’ll show you simple ones.
2.3 Sending the message by actionlib
All you have to do is send Actionlib goal to ~send/goal
.
2.4 Examples
Showing the message examples with rostopic pub -1
command on bash
.
Sending a text message
File truncated at 100 lines see the full file
Changelog for package google_chat_ros
2.1.31 (2025-05-13)
2.1.30 (2025-05-10)
- google_chat_ros: enable to get therad_name message result (#516)
- Add ROS-O 24.04 test (#521)
- Contributors: Kei Okada, Yoshiki Obinata
2.1.29 (2025-01-05)
- [google_chat_ros] check whether google_chat_button's parameters include NoneType object for avoiding rospy serialization error (#501)
- [google_chat_ros] Fix an error message typo; https ==> url (#492)
- Contributors: Kei Okada, Naoto Tsukamoto
2.1.28 (2023-07-24)
2.1.27 (2023-06-24)
- fix package.xml/CMakeLists.txt to supress catkin_lint errors (#479)
- Contributors: Kei Okada
2.1.26 (2023-06-14)
- add LICENSE files (#476)
- Contributors: Kei Okada
2.1.25 (2023-06-08)
- google_chat_ros_node.py: display project_id, subscription_id (#459)
- add test to check if ros node is loadable,
(#463)
- install python files under CATKIN_PACKAGE_BIN_DESTINATION
- google_chat_ros/test_rospy_node.py: skip healper.py helper.py depends on dialogflow_task_executive. However, when we add this to the <depend> of package.xml, it appempts to build venv using 'dialogflow_task_executive/requirements.txt'. This requires having the same PYTHON_INTERPRETER for both dialogflow and chat ros package. The issue is that dialogflow_task_executive heavily relies on system Python modules, including ROS, making it difficult to use dialogflow with Python3 on Melodic
- add catkin_install_python for test, it is also change installed directory from BIN to SHARE, because we want to have same directory structure between devel and install
- add test to check if ros node is loadable If we use python2 PYTHON_INTERPRETER on 20.04, python2 fails to load rospy in /opt/ros/noetic, because rospy moduels are alraedy updated. If we use python3 PYTHON_INTERPRETER on 18.04, python3 can load rospy in /opt/ros/melodic by chance. c.f. https://github.com/jsk-ros-pkg/jsk_3rdparty/pull/367
- google_chat_ros/README.md: add troubleshooting (#450)
- fix google_chat_ros noetic build errors (#422)
- use same timestamp for one goal
(#403)
- save google chat image in /chat_notification with timestamp
- add google_chat_ros (#392)
- Contributors: Aoi Nakane, Kei Okada, Naoto Tsukamoto, Shingo Kitagawa, Yoshiki Obinata
2.1.24 (2021-07-26)
2.1.23 (2021-07-21)
2.1.22 (2021-06-10)
2.1.21 (2020-08-19)
2.1.20 (2020-08-07)
2.1.19 (2020-07-21)
2.1.18 (2020-07-20)
2.1.17 (2020-04-16 21:51)
2.1.16 (2020-04-16 15:21)
2.1.15 (2019-12-12)
2.1.14 (2019-11-21)
2.1.13 (2019-07-10)
2.1.12 (2019-05-25)
2.1.11 (2018-08-29)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
message_generation | |
std_msgs | |
actionlib_msgs | |
catkin_virtualenv | |
catkin | |
message_runtime | |
rospy | |
gdrive_ros | |
dialogflow_task_executive | |
rostest |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_3rdparty |
Launch files
- launch/google_chat.launch
-
- receiving_mode [default: url] — Google Chat API settings. Choose from url, dialogflow, pubsub, none.
- gdrive_upload_service [default: /gdrive_ros/upload] — The ROS service name of gdrive_ros upload
- upload_data_timeout [default: 20]
- download_data [default: true]
- download_data_timeout [default: 10]
- download_directory [default: /tmp]
- download_avatar [default: false]
- google_cloud_credentials_json [default: ]
- use_yaml [default: false] — Whether you use yaml file or not.
- yaml_file [default: ] — Yaml file of web settings.
- respawn [default: true]
- host [default: localhost]
- port [default: 443]
- ssl_certfile [default: default]
- ssl_keyfile [default: default]
- project_id [default: default]
- subscription_id [default: default]
- use_helper [default: true]
- to_dialogflow_client [default: false]
- debug_sound [default: false]
Messages
- msg/ActionParameter.msg
- msg/Annotation.msg
- msg/Attachment.msg
- msg/Button.msg
- msg/Card.msg
- msg/CardAction.msg
- msg/CardEvent.msg
- msg/CardHeader.msg
- msg/FormAction.msg
- msg/Image.msg
- msg/KeyValue.msg
- msg/Message.msg
- msg/MessageEvent.msg
- msg/OnClick.msg
- msg/Section.msg
- msg/SlashCommand.msg
- msg/Space.msg
- msg/SpaceEvent.msg
- msg/User.msg
- msg/WidgetMarkup.msg
Services
Plugins
Recent questions tagged google_chat_ros at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 2.1.31 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-05-13 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Kei Okada
Authors
- Yoshiki Obinata
Google Chat ROS
The ROS wrapper for Google Chat API
- Installation Guide
- Sending the message
- Receiving the message
- Handling the event
- Optional functions
- Helper nodes
1. Installation Guide
1.1 Get the API KEY
At first, you should have the permission to access the Google Chat API.
See Google Official Document. Please ensure to get JSON credetial file and save it. DO NOT LOST IT!
For JSK members, all keys are available at Google Drive. If you make new API keys, please upload them here.
1.2 Select the way how to recieve Google Chat event
The way you recieve Google Chat event from API server depends on your system. If your system has static IP and is allowed to recieve https request with specific port, please see HTTPS mode. If not, please see Pub/Sub mode.
HTTPS mode
When you send the message, the node uses Google REST API. When you recieve the message, Google Chat API sends https request to your machine and the node handles it.
You have to prepare SSL certificate. Self-signed one is not available because of Google security issue. Please use the service like Let’s Encrypt. In Google Cloud console, please choose App URL
as connection settings and fill the URL in the App URL form.
Pub/Sub mode
When you send the message, the node uses Google REST API. When you recieve the message, the node uses Google Pub/Sub API’s subscription. The node has already established its connection to Google Pub/Sub API when you launch it.
The way how to set up in Google Cloud console shows below.
1. Authorize the existing Google Chat API project to access Google Cloud Pub/Sub service
In IAM settings in the console, please add the role Pub/Sub Admin
to service account.
2. Create Pub/Sub topic and subscriber
In Pub/Sub settings in the console, please add the topic and subscriptions.
In the figure, we set the topic name chat
, the subscription name chat-sub
as an example.
Note that if you set the topic name chat
, the full name of it becomes projects/<project_name>/topics/chat
. Please confirm the subsciptions subscribes the full name not short one.
3. Grant publish rigts on your topic
In order for Google Chat to publish messages to your topic, it must have publishing rights to the topic. To grant Google Chat these permissions, assign the Pub/Sub Publisher role to the following service account
chat-api-push@system.gserviceaccount.com
4. Set Google Chat API Connection settings
Please choose Cloud Pub/Sub
as connection settings and fill the full topic name in the Topic Name form.
1.3 Install/Build the ROS node
If you want to build from the source
source /opt/ros/${ROS_DISTRO}/setup.bash
mkdir -p ~/catkin_ws/src && cd ~/catkin_ws/src
git clone https://github.com/jsk-ros-pkg/jsk_3rdparty
rosdep install --ignore-src --from-paths . -y -r
cd ..
catkin build
1.4 Launch the node
HTTPS mode
You have to set rosparams receiving_mode=https
, google_cloud_credentials_json
, host
, port
, ssl_certfile
, ssl_keyfile
.
Pub/Sub mode
You have to set rosparams receiving_mode=pubsub
, google_cloud_credentials_json
, project_id
, subscription_id
. subscription_id
would be chat-sub
if you follow Pub/Sub mode example.
Example
roslaunch google_chat_ros google_chat.launch receiving_mode:=pubsub google_cloud_credentials_json:=/path/to/<project_id>-XXXXXXXX.json project_id:=<project_id> subscription_id:=chat-sub
2. Sending the message
2.1 Understanding Google Chat Room
When you see Google Chat UI with browsers or smartphone’s apps, you may see space
, thread
. If you send new message, you must specify the space or thread you want to send the message to. You can get the space name from chat room’s URL. If it is https://mail.google.com/chat/u/0/#chat/space/XXXXXXXXXXX
, XXXXXXXXXXX
becomes the space name.
2.2 Message format
There are 2 types of messages, text and card. The card basically follows the original json structure. As the node covers all the units in here with ros action msgs, it may be complicated for you if you want to use all of them. So in Examples sections, we’ll show you simple ones.
2.3 Sending the message by actionlib
All you have to do is send Actionlib goal to ~send/goal
.
2.4 Examples
Showing the message examples with rostopic pub -1
command on bash
.
Sending a text message
File truncated at 100 lines see the full file
Changelog for package google_chat_ros
2.1.31 (2025-05-13)
2.1.30 (2025-05-10)
- google_chat_ros: enable to get therad_name message result (#516)
- Add ROS-O 24.04 test (#521)
- Contributors: Kei Okada, Yoshiki Obinata
2.1.29 (2025-01-05)
- [google_chat_ros] check whether google_chat_button's parameters include NoneType object for avoiding rospy serialization error (#501)
- [google_chat_ros] Fix an error message typo; https ==> url (#492)
- Contributors: Kei Okada, Naoto Tsukamoto
2.1.28 (2023-07-24)
2.1.27 (2023-06-24)
- fix package.xml/CMakeLists.txt to supress catkin_lint errors (#479)
- Contributors: Kei Okada
2.1.26 (2023-06-14)
- add LICENSE files (#476)
- Contributors: Kei Okada
2.1.25 (2023-06-08)
- google_chat_ros_node.py: display project_id, subscription_id (#459)
- add test to check if ros node is loadable,
(#463)
- install python files under CATKIN_PACKAGE_BIN_DESTINATION
- google_chat_ros/test_rospy_node.py: skip healper.py helper.py depends on dialogflow_task_executive. However, when we add this to the <depend> of package.xml, it appempts to build venv using 'dialogflow_task_executive/requirements.txt'. This requires having the same PYTHON_INTERPRETER for both dialogflow and chat ros package. The issue is that dialogflow_task_executive heavily relies on system Python modules, including ROS, making it difficult to use dialogflow with Python3 on Melodic
- add catkin_install_python for test, it is also change installed directory from BIN to SHARE, because we want to have same directory structure between devel and install
- add test to check if ros node is loadable If we use python2 PYTHON_INTERPRETER on 20.04, python2 fails to load rospy in /opt/ros/noetic, because rospy moduels are alraedy updated. If we use python3 PYTHON_INTERPRETER on 18.04, python3 can load rospy in /opt/ros/melodic by chance. c.f. https://github.com/jsk-ros-pkg/jsk_3rdparty/pull/367
- google_chat_ros/README.md: add troubleshooting (#450)
- fix google_chat_ros noetic build errors (#422)
- use same timestamp for one goal
(#403)
- save google chat image in /chat_notification with timestamp
- add google_chat_ros (#392)
- Contributors: Aoi Nakane, Kei Okada, Naoto Tsukamoto, Shingo Kitagawa, Yoshiki Obinata
2.1.24 (2021-07-26)
2.1.23 (2021-07-21)
2.1.22 (2021-06-10)
2.1.21 (2020-08-19)
2.1.20 (2020-08-07)
2.1.19 (2020-07-21)
2.1.18 (2020-07-20)
2.1.17 (2020-04-16 21:51)
2.1.16 (2020-04-16 15:21)
2.1.15 (2019-12-12)
2.1.14 (2019-11-21)
2.1.13 (2019-07-10)
2.1.12 (2019-05-25)
2.1.11 (2018-08-29)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
message_generation | |
std_msgs | |
actionlib_msgs | |
catkin_virtualenv | |
catkin | |
message_runtime | |
rospy | |
gdrive_ros | |
dialogflow_task_executive | |
rostest |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_3rdparty |
Launch files
- launch/google_chat.launch
-
- receiving_mode [default: url] — Google Chat API settings. Choose from url, dialogflow, pubsub, none.
- gdrive_upload_service [default: /gdrive_ros/upload] — The ROS service name of gdrive_ros upload
- upload_data_timeout [default: 20]
- download_data [default: true]
- download_data_timeout [default: 10]
- download_directory [default: /tmp]
- download_avatar [default: false]
- google_cloud_credentials_json [default: ]
- use_yaml [default: false] — Whether you use yaml file or not.
- yaml_file [default: ] — Yaml file of web settings.
- respawn [default: true]
- host [default: localhost]
- port [default: 443]
- ssl_certfile [default: default]
- ssl_keyfile [default: default]
- project_id [default: default]
- subscription_id [default: default]
- use_helper [default: true]
- to_dialogflow_client [default: false]
- debug_sound [default: false]
Messages
- msg/ActionParameter.msg
- msg/Annotation.msg
- msg/Attachment.msg
- msg/Button.msg
- msg/Card.msg
- msg/CardAction.msg
- msg/CardEvent.msg
- msg/CardHeader.msg
- msg/FormAction.msg
- msg/Image.msg
- msg/KeyValue.msg
- msg/Message.msg
- msg/MessageEvent.msg
- msg/OnClick.msg
- msg/Section.msg
- msg/SlashCommand.msg
- msg/Space.msg
- msg/SpaceEvent.msg
- msg/User.msg
- msg/WidgetMarkup.msg
Services
Plugins
Recent questions tagged google_chat_ros at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 2.1.31 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-05-13 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Kei Okada
Authors
- Yoshiki Obinata
Google Chat ROS
The ROS wrapper for Google Chat API
- Installation Guide
- Sending the message
- Receiving the message
- Handling the event
- Optional functions
- Helper nodes
1. Installation Guide
1.1 Get the API KEY
At first, you should have the permission to access the Google Chat API.
See Google Official Document. Please ensure to get JSON credetial file and save it. DO NOT LOST IT!
For JSK members, all keys are available at Google Drive. If you make new API keys, please upload them here.
1.2 Select the way how to recieve Google Chat event
The way you recieve Google Chat event from API server depends on your system. If your system has static IP and is allowed to recieve https request with specific port, please see HTTPS mode. If not, please see Pub/Sub mode.
HTTPS mode
When you send the message, the node uses Google REST API. When you recieve the message, Google Chat API sends https request to your machine and the node handles it.
You have to prepare SSL certificate. Self-signed one is not available because of Google security issue. Please use the service like Let’s Encrypt. In Google Cloud console, please choose App URL
as connection settings and fill the URL in the App URL form.
Pub/Sub mode
When you send the message, the node uses Google REST API. When you recieve the message, the node uses Google Pub/Sub API’s subscription. The node has already established its connection to Google Pub/Sub API when you launch it.
The way how to set up in Google Cloud console shows below.
1. Authorize the existing Google Chat API project to access Google Cloud Pub/Sub service
In IAM settings in the console, please add the role Pub/Sub Admin
to service account.
2. Create Pub/Sub topic and subscriber
In Pub/Sub settings in the console, please add the topic and subscriptions.
In the figure, we set the topic name chat
, the subscription name chat-sub
as an example.
Note that if you set the topic name chat
, the full name of it becomes projects/<project_name>/topics/chat
. Please confirm the subsciptions subscribes the full name not short one.
3. Grant publish rigts on your topic
In order for Google Chat to publish messages to your topic, it must have publishing rights to the topic. To grant Google Chat these permissions, assign the Pub/Sub Publisher role to the following service account
chat-api-push@system.gserviceaccount.com
4. Set Google Chat API Connection settings
Please choose Cloud Pub/Sub
as connection settings and fill the full topic name in the Topic Name form.
1.3 Install/Build the ROS node
If you want to build from the source
source /opt/ros/${ROS_DISTRO}/setup.bash
mkdir -p ~/catkin_ws/src && cd ~/catkin_ws/src
git clone https://github.com/jsk-ros-pkg/jsk_3rdparty
rosdep install --ignore-src --from-paths . -y -r
cd ..
catkin build
1.4 Launch the node
HTTPS mode
You have to set rosparams receiving_mode=https
, google_cloud_credentials_json
, host
, port
, ssl_certfile
, ssl_keyfile
.
Pub/Sub mode
You have to set rosparams receiving_mode=pubsub
, google_cloud_credentials_json
, project_id
, subscription_id
. subscription_id
would be chat-sub
if you follow Pub/Sub mode example.
Example
roslaunch google_chat_ros google_chat.launch receiving_mode:=pubsub google_cloud_credentials_json:=/path/to/<project_id>-XXXXXXXX.json project_id:=<project_id> subscription_id:=chat-sub
2. Sending the message
2.1 Understanding Google Chat Room
When you see Google Chat UI with browsers or smartphone’s apps, you may see space
, thread
. If you send new message, you must specify the space or thread you want to send the message to. You can get the space name from chat room’s URL. If it is https://mail.google.com/chat/u/0/#chat/space/XXXXXXXXXXX
, XXXXXXXXXXX
becomes the space name.
2.2 Message format
There are 2 types of messages, text and card. The card basically follows the original json structure. As the node covers all the units in here with ros action msgs, it may be complicated for you if you want to use all of them. So in Examples sections, we’ll show you simple ones.
2.3 Sending the message by actionlib
All you have to do is send Actionlib goal to ~send/goal
.
2.4 Examples
Showing the message examples with rostopic pub -1
command on bash
.
Sending a text message
File truncated at 100 lines see the full file
Changelog for package google_chat_ros
2.1.31 (2025-05-13)
2.1.30 (2025-05-10)
- google_chat_ros: enable to get therad_name message result (#516)
- Add ROS-O 24.04 test (#521)
- Contributors: Kei Okada, Yoshiki Obinata
2.1.29 (2025-01-05)
- [google_chat_ros] check whether google_chat_button's parameters include NoneType object for avoiding rospy serialization error (#501)
- [google_chat_ros] Fix an error message typo; https ==> url (#492)
- Contributors: Kei Okada, Naoto Tsukamoto
2.1.28 (2023-07-24)
2.1.27 (2023-06-24)
- fix package.xml/CMakeLists.txt to supress catkin_lint errors (#479)
- Contributors: Kei Okada
2.1.26 (2023-06-14)
- add LICENSE files (#476)
- Contributors: Kei Okada
2.1.25 (2023-06-08)
- google_chat_ros_node.py: display project_id, subscription_id (#459)
- add test to check if ros node is loadable,
(#463)
- install python files under CATKIN_PACKAGE_BIN_DESTINATION
- google_chat_ros/test_rospy_node.py: skip healper.py helper.py depends on dialogflow_task_executive. However, when we add this to the <depend> of package.xml, it appempts to build venv using 'dialogflow_task_executive/requirements.txt'. This requires having the same PYTHON_INTERPRETER for both dialogflow and chat ros package. The issue is that dialogflow_task_executive heavily relies on system Python modules, including ROS, making it difficult to use dialogflow with Python3 on Melodic
- add catkin_install_python for test, it is also change installed directory from BIN to SHARE, because we want to have same directory structure between devel and install
- add test to check if ros node is loadable If we use python2 PYTHON_INTERPRETER on 20.04, python2 fails to load rospy in /opt/ros/noetic, because rospy moduels are alraedy updated. If we use python3 PYTHON_INTERPRETER on 18.04, python3 can load rospy in /opt/ros/melodic by chance. c.f. https://github.com/jsk-ros-pkg/jsk_3rdparty/pull/367
- google_chat_ros/README.md: add troubleshooting (#450)
- fix google_chat_ros noetic build errors (#422)
- use same timestamp for one goal
(#403)
- save google chat image in /chat_notification with timestamp
- add google_chat_ros (#392)
- Contributors: Aoi Nakane, Kei Okada, Naoto Tsukamoto, Shingo Kitagawa, Yoshiki Obinata
2.1.24 (2021-07-26)
2.1.23 (2021-07-21)
2.1.22 (2021-06-10)
2.1.21 (2020-08-19)
2.1.20 (2020-08-07)
2.1.19 (2020-07-21)
2.1.18 (2020-07-20)
2.1.17 (2020-04-16 21:51)
2.1.16 (2020-04-16 15:21)
2.1.15 (2019-12-12)
2.1.14 (2019-11-21)
2.1.13 (2019-07-10)
2.1.12 (2019-05-25)
2.1.11 (2018-08-29)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
message_generation | |
std_msgs | |
actionlib_msgs | |
catkin_virtualenv | |
catkin | |
message_runtime | |
rospy | |
gdrive_ros | |
dialogflow_task_executive | |
rostest |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_3rdparty |
Launch files
- launch/google_chat.launch
-
- receiving_mode [default: url] — Google Chat API settings. Choose from url, dialogflow, pubsub, none.
- gdrive_upload_service [default: /gdrive_ros/upload] — The ROS service name of gdrive_ros upload
- upload_data_timeout [default: 20]
- download_data [default: true]
- download_data_timeout [default: 10]
- download_directory [default: /tmp]
- download_avatar [default: false]
- google_cloud_credentials_json [default: ]
- use_yaml [default: false] — Whether you use yaml file or not.
- yaml_file [default: ] — Yaml file of web settings.
- respawn [default: true]
- host [default: localhost]
- port [default: 443]
- ssl_certfile [default: default]
- ssl_keyfile [default: default]
- project_id [default: default]
- subscription_id [default: default]
- use_helper [default: true]
- to_dialogflow_client [default: false]
- debug_sound [default: false]
Messages
- msg/ActionParameter.msg
- msg/Annotation.msg
- msg/Attachment.msg
- msg/Button.msg
- msg/Card.msg
- msg/CardAction.msg
- msg/CardEvent.msg
- msg/CardHeader.msg
- msg/FormAction.msg
- msg/Image.msg
- msg/KeyValue.msg
- msg/Message.msg
- msg/MessageEvent.msg
- msg/OnClick.msg
- msg/Section.msg
- msg/SlashCommand.msg
- msg/Space.msg
- msg/SpaceEvent.msg
- msg/User.msg
- msg/WidgetMarkup.msg
Services
Plugins
Recent questions tagged google_chat_ros at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 2.1.31 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-05-13 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Kei Okada
Authors
- Yoshiki Obinata
Google Chat ROS
The ROS wrapper for Google Chat API
- Installation Guide
- Sending the message
- Receiving the message
- Handling the event
- Optional functions
- Helper nodes
1. Installation Guide
1.1 Get the API KEY
At first, you should have the permission to access the Google Chat API.
See Google Official Document. Please ensure to get JSON credetial file and save it. DO NOT LOST IT!
For JSK members, all keys are available at Google Drive. If you make new API keys, please upload them here.
1.2 Select the way how to recieve Google Chat event
The way you recieve Google Chat event from API server depends on your system. If your system has static IP and is allowed to recieve https request with specific port, please see HTTPS mode. If not, please see Pub/Sub mode.
HTTPS mode
When you send the message, the node uses Google REST API. When you recieve the message, Google Chat API sends https request to your machine and the node handles it.
You have to prepare SSL certificate. Self-signed one is not available because of Google security issue. Please use the service like Let’s Encrypt. In Google Cloud console, please choose App URL
as connection settings and fill the URL in the App URL form.
Pub/Sub mode
When you send the message, the node uses Google REST API. When you recieve the message, the node uses Google Pub/Sub API’s subscription. The node has already established its connection to Google Pub/Sub API when you launch it.
The way how to set up in Google Cloud console shows below.
1. Authorize the existing Google Chat API project to access Google Cloud Pub/Sub service
In IAM settings in the console, please add the role Pub/Sub Admin
to service account.
2. Create Pub/Sub topic and subscriber
In Pub/Sub settings in the console, please add the topic and subscriptions.
In the figure, we set the topic name chat
, the subscription name chat-sub
as an example.
Note that if you set the topic name chat
, the full name of it becomes projects/<project_name>/topics/chat
. Please confirm the subsciptions subscribes the full name not short one.
3. Grant publish rigts on your topic
In order for Google Chat to publish messages to your topic, it must have publishing rights to the topic. To grant Google Chat these permissions, assign the Pub/Sub Publisher role to the following service account
chat-api-push@system.gserviceaccount.com
4. Set Google Chat API Connection settings
Please choose Cloud Pub/Sub
as connection settings and fill the full topic name in the Topic Name form.
1.3 Install/Build the ROS node
If you want to build from the source
source /opt/ros/${ROS_DISTRO}/setup.bash
mkdir -p ~/catkin_ws/src && cd ~/catkin_ws/src
git clone https://github.com/jsk-ros-pkg/jsk_3rdparty
rosdep install --ignore-src --from-paths . -y -r
cd ..
catkin build
1.4 Launch the node
HTTPS mode
You have to set rosparams receiving_mode=https
, google_cloud_credentials_json
, host
, port
, ssl_certfile
, ssl_keyfile
.
Pub/Sub mode
You have to set rosparams receiving_mode=pubsub
, google_cloud_credentials_json
, project_id
, subscription_id
. subscription_id
would be chat-sub
if you follow Pub/Sub mode example.
Example
roslaunch google_chat_ros google_chat.launch receiving_mode:=pubsub google_cloud_credentials_json:=/path/to/<project_id>-XXXXXXXX.json project_id:=<project_id> subscription_id:=chat-sub
2. Sending the message
2.1 Understanding Google Chat Room
When you see Google Chat UI with browsers or smartphone’s apps, you may see space
, thread
. If you send new message, you must specify the space or thread you want to send the message to. You can get the space name from chat room’s URL. If it is https://mail.google.com/chat/u/0/#chat/space/XXXXXXXXXXX
, XXXXXXXXXXX
becomes the space name.
2.2 Message format
There are 2 types of messages, text and card. The card basically follows the original json structure. As the node covers all the units in here with ros action msgs, it may be complicated for you if you want to use all of them. So in Examples sections, we’ll show you simple ones.
2.3 Sending the message by actionlib
All you have to do is send Actionlib goal to ~send/goal
.
2.4 Examples
Showing the message examples with rostopic pub -1
command on bash
.
Sending a text message
File truncated at 100 lines see the full file
Changelog for package google_chat_ros
2.1.31 (2025-05-13)
2.1.30 (2025-05-10)
- google_chat_ros: enable to get therad_name message result (#516)
- Add ROS-O 24.04 test (#521)
- Contributors: Kei Okada, Yoshiki Obinata
2.1.29 (2025-01-05)
- [google_chat_ros] check whether google_chat_button's parameters include NoneType object for avoiding rospy serialization error (#501)
- [google_chat_ros] Fix an error message typo; https ==> url (#492)
- Contributors: Kei Okada, Naoto Tsukamoto
2.1.28 (2023-07-24)
2.1.27 (2023-06-24)
- fix package.xml/CMakeLists.txt to supress catkin_lint errors (#479)
- Contributors: Kei Okada
2.1.26 (2023-06-14)
- add LICENSE files (#476)
- Contributors: Kei Okada
2.1.25 (2023-06-08)
- google_chat_ros_node.py: display project_id, subscription_id (#459)
- add test to check if ros node is loadable,
(#463)
- install python files under CATKIN_PACKAGE_BIN_DESTINATION
- google_chat_ros/test_rospy_node.py: skip healper.py helper.py depends on dialogflow_task_executive. However, when we add this to the <depend> of package.xml, it appempts to build venv using 'dialogflow_task_executive/requirements.txt'. This requires having the same PYTHON_INTERPRETER for both dialogflow and chat ros package. The issue is that dialogflow_task_executive heavily relies on system Python modules, including ROS, making it difficult to use dialogflow with Python3 on Melodic
- add catkin_install_python for test, it is also change installed directory from BIN to SHARE, because we want to have same directory structure between devel and install
- add test to check if ros node is loadable If we use python2 PYTHON_INTERPRETER on 20.04, python2 fails to load rospy in /opt/ros/noetic, because rospy moduels are alraedy updated. If we use python3 PYTHON_INTERPRETER on 18.04, python3 can load rospy in /opt/ros/melodic by chance. c.f. https://github.com/jsk-ros-pkg/jsk_3rdparty/pull/367
- google_chat_ros/README.md: add troubleshooting (#450)
- fix google_chat_ros noetic build errors (#422)
- use same timestamp for one goal
(#403)
- save google chat image in /chat_notification with timestamp
- add google_chat_ros (#392)
- Contributors: Aoi Nakane, Kei Okada, Naoto Tsukamoto, Shingo Kitagawa, Yoshiki Obinata
2.1.24 (2021-07-26)
2.1.23 (2021-07-21)
2.1.22 (2021-06-10)
2.1.21 (2020-08-19)
2.1.20 (2020-08-07)
2.1.19 (2020-07-21)
2.1.18 (2020-07-20)
2.1.17 (2020-04-16 21:51)
2.1.16 (2020-04-16 15:21)
2.1.15 (2019-12-12)
2.1.14 (2019-11-21)
2.1.13 (2019-07-10)
2.1.12 (2019-05-25)
2.1.11 (2018-08-29)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
message_generation | |
std_msgs | |
actionlib_msgs | |
catkin_virtualenv | |
catkin | |
message_runtime | |
rospy | |
gdrive_ros | |
dialogflow_task_executive | |
rostest |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_3rdparty |
Launch files
- launch/google_chat.launch
-
- receiving_mode [default: url] — Google Chat API settings. Choose from url, dialogflow, pubsub, none.
- gdrive_upload_service [default: /gdrive_ros/upload] — The ROS service name of gdrive_ros upload
- upload_data_timeout [default: 20]
- download_data [default: true]
- download_data_timeout [default: 10]
- download_directory [default: /tmp]
- download_avatar [default: false]
- google_cloud_credentials_json [default: ]
- use_yaml [default: false] — Whether you use yaml file or not.
- yaml_file [default: ] — Yaml file of web settings.
- respawn [default: true]
- host [default: localhost]
- port [default: 443]
- ssl_certfile [default: default]
- ssl_keyfile [default: default]
- project_id [default: default]
- subscription_id [default: default]
- use_helper [default: true]
- to_dialogflow_client [default: false]
- debug_sound [default: false]
Messages
- msg/ActionParameter.msg
- msg/Annotation.msg
- msg/Attachment.msg
- msg/Button.msg
- msg/Card.msg
- msg/CardAction.msg
- msg/CardEvent.msg
- msg/CardHeader.msg
- msg/FormAction.msg
- msg/Image.msg
- msg/KeyValue.msg
- msg/Message.msg
- msg/MessageEvent.msg
- msg/OnClick.msg
- msg/Section.msg
- msg/SlashCommand.msg
- msg/Space.msg
- msg/SpaceEvent.msg
- msg/User.msg
- msg/WidgetMarkup.msg
Services
Plugins
Recent questions tagged google_chat_ros at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 2.1.31 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-05-13 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Kei Okada
Authors
- Yoshiki Obinata
Google Chat ROS
The ROS wrapper for Google Chat API
- Installation Guide
- Sending the message
- Receiving the message
- Handling the event
- Optional functions
- Helper nodes
1. Installation Guide
1.1 Get the API KEY
At first, you should have the permission to access the Google Chat API.
See Google Official Document. Please ensure to get JSON credetial file and save it. DO NOT LOST IT!
For JSK members, all keys are available at Google Drive. If you make new API keys, please upload them here.
1.2 Select the way how to recieve Google Chat event
The way you recieve Google Chat event from API server depends on your system. If your system has static IP and is allowed to recieve https request with specific port, please see HTTPS mode. If not, please see Pub/Sub mode.
HTTPS mode
When you send the message, the node uses Google REST API. When you recieve the message, Google Chat API sends https request to your machine and the node handles it.
You have to prepare SSL certificate. Self-signed one is not available because of Google security issue. Please use the service like Let’s Encrypt. In Google Cloud console, please choose App URL
as connection settings and fill the URL in the App URL form.
Pub/Sub mode
When you send the message, the node uses Google REST API. When you recieve the message, the node uses Google Pub/Sub API’s subscription. The node has already established its connection to Google Pub/Sub API when you launch it.
The way how to set up in Google Cloud console shows below.
1. Authorize the existing Google Chat API project to access Google Cloud Pub/Sub service
In IAM settings in the console, please add the role Pub/Sub Admin
to service account.
2. Create Pub/Sub topic and subscriber
In Pub/Sub settings in the console, please add the topic and subscriptions.
In the figure, we set the topic name chat
, the subscription name chat-sub
as an example.
Note that if you set the topic name chat
, the full name of it becomes projects/<project_name>/topics/chat
. Please confirm the subsciptions subscribes the full name not short one.
3. Grant publish rigts on your topic
In order for Google Chat to publish messages to your topic, it must have publishing rights to the topic. To grant Google Chat these permissions, assign the Pub/Sub Publisher role to the following service account
chat-api-push@system.gserviceaccount.com
4. Set Google Chat API Connection settings
Please choose Cloud Pub/Sub
as connection settings and fill the full topic name in the Topic Name form.
1.3 Install/Build the ROS node
If you want to build from the source
source /opt/ros/${ROS_DISTRO}/setup.bash
mkdir -p ~/catkin_ws/src && cd ~/catkin_ws/src
git clone https://github.com/jsk-ros-pkg/jsk_3rdparty
rosdep install --ignore-src --from-paths . -y -r
cd ..
catkin build
1.4 Launch the node
HTTPS mode
You have to set rosparams receiving_mode=https
, google_cloud_credentials_json
, host
, port
, ssl_certfile
, ssl_keyfile
.
Pub/Sub mode
You have to set rosparams receiving_mode=pubsub
, google_cloud_credentials_json
, project_id
, subscription_id
. subscription_id
would be chat-sub
if you follow Pub/Sub mode example.
Example
roslaunch google_chat_ros google_chat.launch receiving_mode:=pubsub google_cloud_credentials_json:=/path/to/<project_id>-XXXXXXXX.json project_id:=<project_id> subscription_id:=chat-sub
2. Sending the message
2.1 Understanding Google Chat Room
When you see Google Chat UI with browsers or smartphone’s apps, you may see space
, thread
. If you send new message, you must specify the space or thread you want to send the message to. You can get the space name from chat room’s URL. If it is https://mail.google.com/chat/u/0/#chat/space/XXXXXXXXXXX
, XXXXXXXXXXX
becomes the space name.
2.2 Message format
There are 2 types of messages, text and card. The card basically follows the original json structure. As the node covers all the units in here with ros action msgs, it may be complicated for you if you want to use all of them. So in Examples sections, we’ll show you simple ones.
2.3 Sending the message by actionlib
All you have to do is send Actionlib goal to ~send/goal
.
2.4 Examples
Showing the message examples with rostopic pub -1
command on bash
.
Sending a text message
File truncated at 100 lines see the full file
Changelog for package google_chat_ros
2.1.31 (2025-05-13)
2.1.30 (2025-05-10)
- google_chat_ros: enable to get therad_name message result (#516)
- Add ROS-O 24.04 test (#521)
- Contributors: Kei Okada, Yoshiki Obinata
2.1.29 (2025-01-05)
- [google_chat_ros] check whether google_chat_button's parameters include NoneType object for avoiding rospy serialization error (#501)
- [google_chat_ros] Fix an error message typo; https ==> url (#492)
- Contributors: Kei Okada, Naoto Tsukamoto
2.1.28 (2023-07-24)
2.1.27 (2023-06-24)
- fix package.xml/CMakeLists.txt to supress catkin_lint errors (#479)
- Contributors: Kei Okada
2.1.26 (2023-06-14)
- add LICENSE files (#476)
- Contributors: Kei Okada
2.1.25 (2023-06-08)
- google_chat_ros_node.py: display project_id, subscription_id (#459)
- add test to check if ros node is loadable,
(#463)
- install python files under CATKIN_PACKAGE_BIN_DESTINATION
- google_chat_ros/test_rospy_node.py: skip healper.py helper.py depends on dialogflow_task_executive. However, when we add this to the <depend> of package.xml, it appempts to build venv using 'dialogflow_task_executive/requirements.txt'. This requires having the same PYTHON_INTERPRETER for both dialogflow and chat ros package. The issue is that dialogflow_task_executive heavily relies on system Python modules, including ROS, making it difficult to use dialogflow with Python3 on Melodic
- add catkin_install_python for test, it is also change installed directory from BIN to SHARE, because we want to have same directory structure between devel and install
- add test to check if ros node is loadable If we use python2 PYTHON_INTERPRETER on 20.04, python2 fails to load rospy in /opt/ros/noetic, because rospy moduels are alraedy updated. If we use python3 PYTHON_INTERPRETER on 18.04, python3 can load rospy in /opt/ros/melodic by chance. c.f. https://github.com/jsk-ros-pkg/jsk_3rdparty/pull/367
- google_chat_ros/README.md: add troubleshooting (#450)
- fix google_chat_ros noetic build errors (#422)
- use same timestamp for one goal
(#403)
- save google chat image in /chat_notification with timestamp
- add google_chat_ros (#392)
- Contributors: Aoi Nakane, Kei Okada, Naoto Tsukamoto, Shingo Kitagawa, Yoshiki Obinata
2.1.24 (2021-07-26)
2.1.23 (2021-07-21)
2.1.22 (2021-06-10)
2.1.21 (2020-08-19)
2.1.20 (2020-08-07)
2.1.19 (2020-07-21)
2.1.18 (2020-07-20)
2.1.17 (2020-04-16 21:51)
2.1.16 (2020-04-16 15:21)
2.1.15 (2019-12-12)
2.1.14 (2019-11-21)
2.1.13 (2019-07-10)
2.1.12 (2019-05-25)
2.1.11 (2018-08-29)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
message_generation | |
std_msgs | |
actionlib_msgs | |
catkin_virtualenv | |
catkin | |
message_runtime | |
rospy | |
gdrive_ros | |
dialogflow_task_executive | |
rostest |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_3rdparty |
Launch files
- launch/google_chat.launch
-
- receiving_mode [default: url] — Google Chat API settings. Choose from url, dialogflow, pubsub, none.
- gdrive_upload_service [default: /gdrive_ros/upload] — The ROS service name of gdrive_ros upload
- upload_data_timeout [default: 20]
- download_data [default: true]
- download_data_timeout [default: 10]
- download_directory [default: /tmp]
- download_avatar [default: false]
- google_cloud_credentials_json [default: ]
- use_yaml [default: false] — Whether you use yaml file or not.
- yaml_file [default: ] — Yaml file of web settings.
- respawn [default: true]
- host [default: localhost]
- port [default: 443]
- ssl_certfile [default: default]
- ssl_keyfile [default: default]
- project_id [default: default]
- subscription_id [default: default]
- use_helper [default: true]
- to_dialogflow_client [default: false]
- debug_sound [default: false]
Messages
- msg/ActionParameter.msg
- msg/Annotation.msg
- msg/Attachment.msg
- msg/Button.msg
- msg/Card.msg
- msg/CardAction.msg
- msg/CardEvent.msg
- msg/CardHeader.msg
- msg/FormAction.msg
- msg/Image.msg
- msg/KeyValue.msg
- msg/Message.msg
- msg/MessageEvent.msg
- msg/OnClick.msg
- msg/Section.msg
- msg/SlashCommand.msg
- msg/Space.msg
- msg/SpaceEvent.msg
- msg/User.msg
- msg/WidgetMarkup.msg
Services
Plugins
Recent questions tagged google_chat_ros at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 2.1.31 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-05-13 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Kei Okada
Authors
- Yoshiki Obinata
Google Chat ROS
The ROS wrapper for Google Chat API
- Installation Guide
- Sending the message
- Receiving the message
- Handling the event
- Optional functions
- Helper nodes
1. Installation Guide
1.1 Get the API KEY
At first, you should have the permission to access the Google Chat API.
See Google Official Document. Please ensure to get JSON credetial file and save it. DO NOT LOST IT!
For JSK members, all keys are available at Google Drive. If you make new API keys, please upload them here.
1.2 Select the way how to recieve Google Chat event
The way you recieve Google Chat event from API server depends on your system. If your system has static IP and is allowed to recieve https request with specific port, please see HTTPS mode. If not, please see Pub/Sub mode.
HTTPS mode
When you send the message, the node uses Google REST API. When you recieve the message, Google Chat API sends https request to your machine and the node handles it.
You have to prepare SSL certificate. Self-signed one is not available because of Google security issue. Please use the service like Let’s Encrypt. In Google Cloud console, please choose App URL
as connection settings and fill the URL in the App URL form.
Pub/Sub mode
When you send the message, the node uses Google REST API. When you recieve the message, the node uses Google Pub/Sub API’s subscription. The node has already established its connection to Google Pub/Sub API when you launch it.
The way how to set up in Google Cloud console shows below.
1. Authorize the existing Google Chat API project to access Google Cloud Pub/Sub service
In IAM settings in the console, please add the role Pub/Sub Admin
to service account.
2. Create Pub/Sub topic and subscriber
In Pub/Sub settings in the console, please add the topic and subscriptions.
In the figure, we set the topic name chat
, the subscription name chat-sub
as an example.
Note that if you set the topic name chat
, the full name of it becomes projects/<project_name>/topics/chat
. Please confirm the subsciptions subscribes the full name not short one.
3. Grant publish rigts on your topic
In order for Google Chat to publish messages to your topic, it must have publishing rights to the topic. To grant Google Chat these permissions, assign the Pub/Sub Publisher role to the following service account
chat-api-push@system.gserviceaccount.com
4. Set Google Chat API Connection settings
Please choose Cloud Pub/Sub
as connection settings and fill the full topic name in the Topic Name form.
1.3 Install/Build the ROS node
If you want to build from the source
source /opt/ros/${ROS_DISTRO}/setup.bash
mkdir -p ~/catkin_ws/src && cd ~/catkin_ws/src
git clone https://github.com/jsk-ros-pkg/jsk_3rdparty
rosdep install --ignore-src --from-paths . -y -r
cd ..
catkin build
1.4 Launch the node
HTTPS mode
You have to set rosparams receiving_mode=https
, google_cloud_credentials_json
, host
, port
, ssl_certfile
, ssl_keyfile
.
Pub/Sub mode
You have to set rosparams receiving_mode=pubsub
, google_cloud_credentials_json
, project_id
, subscription_id
. subscription_id
would be chat-sub
if you follow Pub/Sub mode example.
Example
roslaunch google_chat_ros google_chat.launch receiving_mode:=pubsub google_cloud_credentials_json:=/path/to/<project_id>-XXXXXXXX.json project_id:=<project_id> subscription_id:=chat-sub
2. Sending the message
2.1 Understanding Google Chat Room
When you see Google Chat UI with browsers or smartphone’s apps, you may see space
, thread
. If you send new message, you must specify the space or thread you want to send the message to. You can get the space name from chat room’s URL. If it is https://mail.google.com/chat/u/0/#chat/space/XXXXXXXXXXX
, XXXXXXXXXXX
becomes the space name.
2.2 Message format
There are 2 types of messages, text and card. The card basically follows the original json structure. As the node covers all the units in here with ros action msgs, it may be complicated for you if you want to use all of them. So in Examples sections, we’ll show you simple ones.
2.3 Sending the message by actionlib
All you have to do is send Actionlib goal to ~send/goal
.
2.4 Examples
Showing the message examples with rostopic pub -1
command on bash
.
Sending a text message
File truncated at 100 lines see the full file
Changelog for package google_chat_ros
2.1.31 (2025-05-13)
2.1.30 (2025-05-10)
- google_chat_ros: enable to get therad_name message result (#516)
- Add ROS-O 24.04 test (#521)
- Contributors: Kei Okada, Yoshiki Obinata
2.1.29 (2025-01-05)
- [google_chat_ros] check whether google_chat_button's parameters include NoneType object for avoiding rospy serialization error (#501)
- [google_chat_ros] Fix an error message typo; https ==> url (#492)
- Contributors: Kei Okada, Naoto Tsukamoto
2.1.28 (2023-07-24)
2.1.27 (2023-06-24)
- fix package.xml/CMakeLists.txt to supress catkin_lint errors (#479)
- Contributors: Kei Okada
2.1.26 (2023-06-14)
- add LICENSE files (#476)
- Contributors: Kei Okada
2.1.25 (2023-06-08)
- google_chat_ros_node.py: display project_id, subscription_id (#459)
- add test to check if ros node is loadable,
(#463)
- install python files under CATKIN_PACKAGE_BIN_DESTINATION
- google_chat_ros/test_rospy_node.py: skip healper.py helper.py depends on dialogflow_task_executive. However, when we add this to the <depend> of package.xml, it appempts to build venv using 'dialogflow_task_executive/requirements.txt'. This requires having the same PYTHON_INTERPRETER for both dialogflow and chat ros package. The issue is that dialogflow_task_executive heavily relies on system Python modules, including ROS, making it difficult to use dialogflow with Python3 on Melodic
- add catkin_install_python for test, it is also change installed directory from BIN to SHARE, because we want to have same directory structure between devel and install
- add test to check if ros node is loadable If we use python2 PYTHON_INTERPRETER on 20.04, python2 fails to load rospy in /opt/ros/noetic, because rospy moduels are alraedy updated. If we use python3 PYTHON_INTERPRETER on 18.04, python3 can load rospy in /opt/ros/melodic by chance. c.f. https://github.com/jsk-ros-pkg/jsk_3rdparty/pull/367
- google_chat_ros/README.md: add troubleshooting (#450)
- fix google_chat_ros noetic build errors (#422)
- use same timestamp for one goal
(#403)
- save google chat image in /chat_notification with timestamp
- add google_chat_ros (#392)
- Contributors: Aoi Nakane, Kei Okada, Naoto Tsukamoto, Shingo Kitagawa, Yoshiki Obinata
2.1.24 (2021-07-26)
2.1.23 (2021-07-21)
2.1.22 (2021-06-10)
2.1.21 (2020-08-19)
2.1.20 (2020-08-07)
2.1.19 (2020-07-21)
2.1.18 (2020-07-20)
2.1.17 (2020-04-16 21:51)
2.1.16 (2020-04-16 15:21)
2.1.15 (2019-12-12)
2.1.14 (2019-11-21)
2.1.13 (2019-07-10)
2.1.12 (2019-05-25)
2.1.11 (2018-08-29)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
message_generation | |
std_msgs | |
actionlib_msgs | |
catkin_virtualenv | |
catkin | |
message_runtime | |
rospy | |
gdrive_ros | |
dialogflow_task_executive | |
rostest |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_3rdparty |
Launch files
- launch/google_chat.launch
-
- receiving_mode [default: url] — Google Chat API settings. Choose from url, dialogflow, pubsub, none.
- gdrive_upload_service [default: /gdrive_ros/upload] — The ROS service name of gdrive_ros upload
- upload_data_timeout [default: 20]
- download_data [default: true]
- download_data_timeout [default: 10]
- download_directory [default: /tmp]
- download_avatar [default: false]
- google_cloud_credentials_json [default: ]
- use_yaml [default: false] — Whether you use yaml file or not.
- yaml_file [default: ] — Yaml file of web settings.
- respawn [default: true]
- host [default: localhost]
- port [default: 443]
- ssl_certfile [default: default]
- ssl_keyfile [default: default]
- project_id [default: default]
- subscription_id [default: default]
- use_helper [default: true]
- to_dialogflow_client [default: false]
- debug_sound [default: false]
Messages
- msg/ActionParameter.msg
- msg/Annotation.msg
- msg/Attachment.msg
- msg/Button.msg
- msg/Card.msg
- msg/CardAction.msg
- msg/CardEvent.msg
- msg/CardHeader.msg
- msg/FormAction.msg
- msg/Image.msg
- msg/KeyValue.msg
- msg/Message.msg
- msg/MessageEvent.msg
- msg/OnClick.msg
- msg/Section.msg
- msg/SlashCommand.msg
- msg/Space.msg
- msg/SpaceEvent.msg
- msg/User.msg
- msg/WidgetMarkup.msg
Services
Plugins
Recent questions tagged google_chat_ros at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 2.1.31 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-05-13 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Kei Okada
Authors
- Yoshiki Obinata
Google Chat ROS
The ROS wrapper for Google Chat API
- Installation Guide
- Sending the message
- Receiving the message
- Handling the event
- Optional functions
- Helper nodes
1. Installation Guide
1.1 Get the API KEY
At first, you should have the permission to access the Google Chat API.
See Google Official Document. Please ensure to get JSON credetial file and save it. DO NOT LOST IT!
For JSK members, all keys are available at Google Drive. If you make new API keys, please upload them here.
1.2 Select the way how to recieve Google Chat event
The way you recieve Google Chat event from API server depends on your system. If your system has static IP and is allowed to recieve https request with specific port, please see HTTPS mode. If not, please see Pub/Sub mode.
HTTPS mode
When you send the message, the node uses Google REST API. When you recieve the message, Google Chat API sends https request to your machine and the node handles it.
You have to prepare SSL certificate. Self-signed one is not available because of Google security issue. Please use the service like Let’s Encrypt. In Google Cloud console, please choose App URL
as connection settings and fill the URL in the App URL form.
Pub/Sub mode
When you send the message, the node uses Google REST API. When you recieve the message, the node uses Google Pub/Sub API’s subscription. The node has already established its connection to Google Pub/Sub API when you launch it.
The way how to set up in Google Cloud console shows below.
1. Authorize the existing Google Chat API project to access Google Cloud Pub/Sub service
In IAM settings in the console, please add the role Pub/Sub Admin
to service account.
2. Create Pub/Sub topic and subscriber
In Pub/Sub settings in the console, please add the topic and subscriptions.
In the figure, we set the topic name chat
, the subscription name chat-sub
as an example.
Note that if you set the topic name chat
, the full name of it becomes projects/<project_name>/topics/chat
. Please confirm the subsciptions subscribes the full name not short one.
3. Grant publish rigts on your topic
In order for Google Chat to publish messages to your topic, it must have publishing rights to the topic. To grant Google Chat these permissions, assign the Pub/Sub Publisher role to the following service account
chat-api-push@system.gserviceaccount.com
4. Set Google Chat API Connection settings
Please choose Cloud Pub/Sub
as connection settings and fill the full topic name in the Topic Name form.
1.3 Install/Build the ROS node
If you want to build from the source
source /opt/ros/${ROS_DISTRO}/setup.bash
mkdir -p ~/catkin_ws/src && cd ~/catkin_ws/src
git clone https://github.com/jsk-ros-pkg/jsk_3rdparty
rosdep install --ignore-src --from-paths . -y -r
cd ..
catkin build
1.4 Launch the node
HTTPS mode
You have to set rosparams receiving_mode=https
, google_cloud_credentials_json
, host
, port
, ssl_certfile
, ssl_keyfile
.
Pub/Sub mode
You have to set rosparams receiving_mode=pubsub
, google_cloud_credentials_json
, project_id
, subscription_id
. subscription_id
would be chat-sub
if you follow Pub/Sub mode example.
Example
roslaunch google_chat_ros google_chat.launch receiving_mode:=pubsub google_cloud_credentials_json:=/path/to/<project_id>-XXXXXXXX.json project_id:=<project_id> subscription_id:=chat-sub
2. Sending the message
2.1 Understanding Google Chat Room
When you see Google Chat UI with browsers or smartphone’s apps, you may see space
, thread
. If you send new message, you must specify the space or thread you want to send the message to. You can get the space name from chat room’s URL. If it is https://mail.google.com/chat/u/0/#chat/space/XXXXXXXXXXX
, XXXXXXXXXXX
becomes the space name.
2.2 Message format
There are 2 types of messages, text and card. The card basically follows the original json structure. As the node covers all the units in here with ros action msgs, it may be complicated for you if you want to use all of them. So in Examples sections, we’ll show you simple ones.
2.3 Sending the message by actionlib
All you have to do is send Actionlib goal to ~send/goal
.
2.4 Examples
Showing the message examples with rostopic pub -1
command on bash
.
Sending a text message
File truncated at 100 lines see the full file
Changelog for package google_chat_ros
2.1.31 (2025-05-13)
2.1.30 (2025-05-10)
- google_chat_ros: enable to get therad_name message result (#516)
- Add ROS-O 24.04 test (#521)
- Contributors: Kei Okada, Yoshiki Obinata
2.1.29 (2025-01-05)
- [google_chat_ros] check whether google_chat_button's parameters include NoneType object for avoiding rospy serialization error (#501)
- [google_chat_ros] Fix an error message typo; https ==> url (#492)
- Contributors: Kei Okada, Naoto Tsukamoto
2.1.28 (2023-07-24)
2.1.27 (2023-06-24)
- fix package.xml/CMakeLists.txt to supress catkin_lint errors (#479)
- Contributors: Kei Okada
2.1.26 (2023-06-14)
- add LICENSE files (#476)
- Contributors: Kei Okada
2.1.25 (2023-06-08)
- google_chat_ros_node.py: display project_id, subscription_id (#459)
- add test to check if ros node is loadable,
(#463)
- install python files under CATKIN_PACKAGE_BIN_DESTINATION
- google_chat_ros/test_rospy_node.py: skip healper.py helper.py depends on dialogflow_task_executive. However, when we add this to the <depend> of package.xml, it appempts to build venv using 'dialogflow_task_executive/requirements.txt'. This requires having the same PYTHON_INTERPRETER for both dialogflow and chat ros package. The issue is that dialogflow_task_executive heavily relies on system Python modules, including ROS, making it difficult to use dialogflow with Python3 on Melodic
- add catkin_install_python for test, it is also change installed directory from BIN to SHARE, because we want to have same directory structure between devel and install
- add test to check if ros node is loadable If we use python2 PYTHON_INTERPRETER on 20.04, python2 fails to load rospy in /opt/ros/noetic, because rospy moduels are alraedy updated. If we use python3 PYTHON_INTERPRETER on 18.04, python3 can load rospy in /opt/ros/melodic by chance. c.f. https://github.com/jsk-ros-pkg/jsk_3rdparty/pull/367
- google_chat_ros/README.md: add troubleshooting (#450)
- fix google_chat_ros noetic build errors (#422)
- use same timestamp for one goal
(#403)
- save google chat image in /chat_notification with timestamp
- add google_chat_ros (#392)
- Contributors: Aoi Nakane, Kei Okada, Naoto Tsukamoto, Shingo Kitagawa, Yoshiki Obinata
2.1.24 (2021-07-26)
2.1.23 (2021-07-21)
2.1.22 (2021-06-10)
2.1.21 (2020-08-19)
2.1.20 (2020-08-07)
2.1.19 (2020-07-21)
2.1.18 (2020-07-20)
2.1.17 (2020-04-16 21:51)
2.1.16 (2020-04-16 15:21)
2.1.15 (2019-12-12)
2.1.14 (2019-11-21)
2.1.13 (2019-07-10)
2.1.12 (2019-05-25)
2.1.11 (2018-08-29)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
message_generation | |
std_msgs | |
actionlib_msgs | |
catkin_virtualenv | |
catkin | |
message_runtime | |
rospy | |
gdrive_ros | |
dialogflow_task_executive | |
rostest |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_3rdparty |
Launch files
- launch/google_chat.launch
-
- receiving_mode [default: url] — Google Chat API settings. Choose from url, dialogflow, pubsub, none.
- gdrive_upload_service [default: /gdrive_ros/upload] — The ROS service name of gdrive_ros upload
- upload_data_timeout [default: 20]
- download_data [default: true]
- download_data_timeout [default: 10]
- download_directory [default: /tmp]
- download_avatar [default: false]
- google_cloud_credentials_json [default: ]
- use_yaml [default: false] — Whether you use yaml file or not.
- yaml_file [default: ] — Yaml file of web settings.
- respawn [default: true]
- host [default: localhost]
- port [default: 443]
- ssl_certfile [default: default]
- ssl_keyfile [default: default]
- project_id [default: default]
- subscription_id [default: default]
- use_helper [default: true]
- to_dialogflow_client [default: false]
- debug_sound [default: false]
Messages
- msg/ActionParameter.msg
- msg/Annotation.msg
- msg/Attachment.msg
- msg/Button.msg
- msg/Card.msg
- msg/CardAction.msg
- msg/CardEvent.msg
- msg/CardHeader.msg
- msg/FormAction.msg
- msg/Image.msg
- msg/KeyValue.msg
- msg/Message.msg
- msg/MessageEvent.msg
- msg/OnClick.msg
- msg/Section.msg
- msg/SlashCommand.msg
- msg/Space.msg
- msg/SpaceEvent.msg
- msg/User.msg
- msg/WidgetMarkup.msg
Services
Plugins
Recent questions tagged google_chat_ros at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 2.1.31 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-05-13 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Kei Okada
Authors
- Yoshiki Obinata
Google Chat ROS
The ROS wrapper for Google Chat API
- Installation Guide
- Sending the message
- Receiving the message
- Handling the event
- Optional functions
- Helper nodes
1. Installation Guide
1.1 Get the API KEY
At first, you should have the permission to access the Google Chat API.
See Google Official Document. Please ensure to get JSON credetial file and save it. DO NOT LOST IT!
For JSK members, all keys are available at Google Drive. If you make new API keys, please upload them here.
1.2 Select the way how to recieve Google Chat event
The way you recieve Google Chat event from API server depends on your system. If your system has static IP and is allowed to recieve https request with specific port, please see HTTPS mode. If not, please see Pub/Sub mode.
HTTPS mode
When you send the message, the node uses Google REST API. When you recieve the message, Google Chat API sends https request to your machine and the node handles it.
You have to prepare SSL certificate. Self-signed one is not available because of Google security issue. Please use the service like Let’s Encrypt. In Google Cloud console, please choose App URL
as connection settings and fill the URL in the App URL form.
Pub/Sub mode
When you send the message, the node uses Google REST API. When you recieve the message, the node uses Google Pub/Sub API’s subscription. The node has already established its connection to Google Pub/Sub API when you launch it.
The way how to set up in Google Cloud console shows below.
1. Authorize the existing Google Chat API project to access Google Cloud Pub/Sub service
In IAM settings in the console, please add the role Pub/Sub Admin
to service account.
2. Create Pub/Sub topic and subscriber
In Pub/Sub settings in the console, please add the topic and subscriptions.
In the figure, we set the topic name chat
, the subscription name chat-sub
as an example.
Note that if you set the topic name chat
, the full name of it becomes projects/<project_name>/topics/chat
. Please confirm the subsciptions subscribes the full name not short one.
3. Grant publish rigts on your topic
In order for Google Chat to publish messages to your topic, it must have publishing rights to the topic. To grant Google Chat these permissions, assign the Pub/Sub Publisher role to the following service account
chat-api-push@system.gserviceaccount.com
4. Set Google Chat API Connection settings
Please choose Cloud Pub/Sub
as connection settings and fill the full topic name in the Topic Name form.
1.3 Install/Build the ROS node
If you want to build from the source
source /opt/ros/${ROS_DISTRO}/setup.bash
mkdir -p ~/catkin_ws/src && cd ~/catkin_ws/src
git clone https://github.com/jsk-ros-pkg/jsk_3rdparty
rosdep install --ignore-src --from-paths . -y -r
cd ..
catkin build
1.4 Launch the node
HTTPS mode
You have to set rosparams receiving_mode=https
, google_cloud_credentials_json
, host
, port
, ssl_certfile
, ssl_keyfile
.
Pub/Sub mode
You have to set rosparams receiving_mode=pubsub
, google_cloud_credentials_json
, project_id
, subscription_id
. subscription_id
would be chat-sub
if you follow Pub/Sub mode example.
Example
roslaunch google_chat_ros google_chat.launch receiving_mode:=pubsub google_cloud_credentials_json:=/path/to/<project_id>-XXXXXXXX.json project_id:=<project_id> subscription_id:=chat-sub
2. Sending the message
2.1 Understanding Google Chat Room
When you see Google Chat UI with browsers or smartphone’s apps, you may see space
, thread
. If you send new message, you must specify the space or thread you want to send the message to. You can get the space name from chat room’s URL. If it is https://mail.google.com/chat/u/0/#chat/space/XXXXXXXXXXX
, XXXXXXXXXXX
becomes the space name.
2.2 Message format
There are 2 types of messages, text and card. The card basically follows the original json structure. As the node covers all the units in here with ros action msgs, it may be complicated for you if you want to use all of them. So in Examples sections, we’ll show you simple ones.
2.3 Sending the message by actionlib
All you have to do is send Actionlib goal to ~send/goal
.
2.4 Examples
Showing the message examples with rostopic pub -1
command on bash
.
Sending a text message
File truncated at 100 lines see the full file
Changelog for package google_chat_ros
2.1.31 (2025-05-13)
2.1.30 (2025-05-10)
- google_chat_ros: enable to get therad_name message result (#516)
- Add ROS-O 24.04 test (#521)
- Contributors: Kei Okada, Yoshiki Obinata
2.1.29 (2025-01-05)
- [google_chat_ros] check whether google_chat_button's parameters include NoneType object for avoiding rospy serialization error (#501)
- [google_chat_ros] Fix an error message typo; https ==> url (#492)
- Contributors: Kei Okada, Naoto Tsukamoto
2.1.28 (2023-07-24)
2.1.27 (2023-06-24)
- fix package.xml/CMakeLists.txt to supress catkin_lint errors (#479)
- Contributors: Kei Okada
2.1.26 (2023-06-14)
- add LICENSE files (#476)
- Contributors: Kei Okada
2.1.25 (2023-06-08)
- google_chat_ros_node.py: display project_id, subscription_id (#459)
- add test to check if ros node is loadable,
(#463)
- install python files under CATKIN_PACKAGE_BIN_DESTINATION
- google_chat_ros/test_rospy_node.py: skip healper.py helper.py depends on dialogflow_task_executive. However, when we add this to the <depend> of package.xml, it appempts to build venv using 'dialogflow_task_executive/requirements.txt'. This requires having the same PYTHON_INTERPRETER for both dialogflow and chat ros package. The issue is that dialogflow_task_executive heavily relies on system Python modules, including ROS, making it difficult to use dialogflow with Python3 on Melodic
- add catkin_install_python for test, it is also change installed directory from BIN to SHARE, because we want to have same directory structure between devel and install
- add test to check if ros node is loadable If we use python2 PYTHON_INTERPRETER on 20.04, python2 fails to load rospy in /opt/ros/noetic, because rospy moduels are alraedy updated. If we use python3 PYTHON_INTERPRETER on 18.04, python3 can load rospy in /opt/ros/melodic by chance. c.f. https://github.com/jsk-ros-pkg/jsk_3rdparty/pull/367
- google_chat_ros/README.md: add troubleshooting (#450)
- fix google_chat_ros noetic build errors (#422)
- use same timestamp for one goal
(#403)
- save google chat image in /chat_notification with timestamp
- add google_chat_ros (#392)
- Contributors: Aoi Nakane, Kei Okada, Naoto Tsukamoto, Shingo Kitagawa, Yoshiki Obinata
2.1.24 (2021-07-26)
2.1.23 (2021-07-21)
2.1.22 (2021-06-10)
2.1.21 (2020-08-19)
2.1.20 (2020-08-07)
2.1.19 (2020-07-21)
2.1.18 (2020-07-20)
2.1.17 (2020-04-16 21:51)
2.1.16 (2020-04-16 15:21)
2.1.15 (2019-12-12)
2.1.14 (2019-11-21)
2.1.13 (2019-07-10)
2.1.12 (2019-05-25)
2.1.11 (2018-08-29)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
message_generation | |
std_msgs | |
actionlib_msgs | |
catkin_virtualenv | |
catkin | |
message_runtime | |
rospy | |
gdrive_ros | |
dialogflow_task_executive | |
rostest |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_3rdparty |
Launch files
- launch/google_chat.launch
-
- receiving_mode [default: url] — Google Chat API settings. Choose from url, dialogflow, pubsub, none.
- gdrive_upload_service [default: /gdrive_ros/upload] — The ROS service name of gdrive_ros upload
- upload_data_timeout [default: 20]
- download_data [default: true]
- download_data_timeout [default: 10]
- download_directory [default: /tmp]
- download_avatar [default: false]
- google_cloud_credentials_json [default: ]
- use_yaml [default: false] — Whether you use yaml file or not.
- yaml_file [default: ] — Yaml file of web settings.
- respawn [default: true]
- host [default: localhost]
- port [default: 443]
- ssl_certfile [default: default]
- ssl_keyfile [default: default]
- project_id [default: default]
- subscription_id [default: default]
- use_helper [default: true]
- to_dialogflow_client [default: false]
- debug_sound [default: false]
Messages
- msg/ActionParameter.msg
- msg/Annotation.msg
- msg/Attachment.msg
- msg/Button.msg
- msg/Card.msg
- msg/CardAction.msg
- msg/CardEvent.msg
- msg/CardHeader.msg
- msg/FormAction.msg
- msg/Image.msg
- msg/KeyValue.msg
- msg/Message.msg
- msg/MessageEvent.msg
- msg/OnClick.msg
- msg/Section.msg
- msg/SlashCommand.msg
- msg/Space.msg
- msg/SpaceEvent.msg
- msg/User.msg
- msg/WidgetMarkup.msg
Services
Plugins
Recent questions tagged google_chat_ros at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 2.1.31 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-05-13 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Kei Okada
Authors
- Yoshiki Obinata
Google Chat ROS
The ROS wrapper for Google Chat API
- Installation Guide
- Sending the message
- Receiving the message
- Handling the event
- Optional functions
- Helper nodes
1. Installation Guide
1.1 Get the API KEY
At first, you should have the permission to access the Google Chat API.
See Google Official Document. Please ensure to get JSON credetial file and save it. DO NOT LOST IT!
For JSK members, all keys are available at Google Drive. If you make new API keys, please upload them here.
1.2 Select the way how to recieve Google Chat event
The way you recieve Google Chat event from API server depends on your system. If your system has static IP and is allowed to recieve https request with specific port, please see HTTPS mode. If not, please see Pub/Sub mode.
HTTPS mode
When you send the message, the node uses Google REST API. When you recieve the message, Google Chat API sends https request to your machine and the node handles it.
You have to prepare SSL certificate. Self-signed one is not available because of Google security issue. Please use the service like Let’s Encrypt. In Google Cloud console, please choose App URL
as connection settings and fill the URL in the App URL form.
Pub/Sub mode
When you send the message, the node uses Google REST API. When you recieve the message, the node uses Google Pub/Sub API’s subscription. The node has already established its connection to Google Pub/Sub API when you launch it.
The way how to set up in Google Cloud console shows below.
1. Authorize the existing Google Chat API project to access Google Cloud Pub/Sub service
In IAM settings in the console, please add the role Pub/Sub Admin
to service account.
2. Create Pub/Sub topic and subscriber
In Pub/Sub settings in the console, please add the topic and subscriptions.
In the figure, we set the topic name chat
, the subscription name chat-sub
as an example.
Note that if you set the topic name chat
, the full name of it becomes projects/<project_name>/topics/chat
. Please confirm the subsciptions subscribes the full name not short one.
3. Grant publish rigts on your topic
In order for Google Chat to publish messages to your topic, it must have publishing rights to the topic. To grant Google Chat these permissions, assign the Pub/Sub Publisher role to the following service account
chat-api-push@system.gserviceaccount.com
4. Set Google Chat API Connection settings
Please choose Cloud Pub/Sub
as connection settings and fill the full topic name in the Topic Name form.
1.3 Install/Build the ROS node
If you want to build from the source
source /opt/ros/${ROS_DISTRO}/setup.bash
mkdir -p ~/catkin_ws/src && cd ~/catkin_ws/src
git clone https://github.com/jsk-ros-pkg/jsk_3rdparty
rosdep install --ignore-src --from-paths . -y -r
cd ..
catkin build
1.4 Launch the node
HTTPS mode
You have to set rosparams receiving_mode=https
, google_cloud_credentials_json
, host
, port
, ssl_certfile
, ssl_keyfile
.
Pub/Sub mode
You have to set rosparams receiving_mode=pubsub
, google_cloud_credentials_json
, project_id
, subscription_id
. subscription_id
would be chat-sub
if you follow Pub/Sub mode example.
Example
roslaunch google_chat_ros google_chat.launch receiving_mode:=pubsub google_cloud_credentials_json:=/path/to/<project_id>-XXXXXXXX.json project_id:=<project_id> subscription_id:=chat-sub
2. Sending the message
2.1 Understanding Google Chat Room
When you see Google Chat UI with browsers or smartphone’s apps, you may see space
, thread
. If you send new message, you must specify the space or thread you want to send the message to. You can get the space name from chat room’s URL. If it is https://mail.google.com/chat/u/0/#chat/space/XXXXXXXXXXX
, XXXXXXXXXXX
becomes the space name.
2.2 Message format
There are 2 types of messages, text and card. The card basically follows the original json structure. As the node covers all the units in here with ros action msgs, it may be complicated for you if you want to use all of them. So in Examples sections, we’ll show you simple ones.
2.3 Sending the message by actionlib
All you have to do is send Actionlib goal to ~send/goal
.
2.4 Examples
Showing the message examples with rostopic pub -1
command on bash
.
Sending a text message
File truncated at 100 lines see the full file
Changelog for package google_chat_ros
2.1.31 (2025-05-13)
2.1.30 (2025-05-10)
- google_chat_ros: enable to get therad_name message result (#516)
- Add ROS-O 24.04 test (#521)
- Contributors: Kei Okada, Yoshiki Obinata
2.1.29 (2025-01-05)
- [google_chat_ros] check whether google_chat_button's parameters include NoneType object for avoiding rospy serialization error (#501)
- [google_chat_ros] Fix an error message typo; https ==> url (#492)
- Contributors: Kei Okada, Naoto Tsukamoto
2.1.28 (2023-07-24)
2.1.27 (2023-06-24)
- fix package.xml/CMakeLists.txt to supress catkin_lint errors (#479)
- Contributors: Kei Okada
2.1.26 (2023-06-14)
- add LICENSE files (#476)
- Contributors: Kei Okada
2.1.25 (2023-06-08)
- google_chat_ros_node.py: display project_id, subscription_id (#459)
- add test to check if ros node is loadable,
(#463)
- install python files under CATKIN_PACKAGE_BIN_DESTINATION
- google_chat_ros/test_rospy_node.py: skip healper.py helper.py depends on dialogflow_task_executive. However, when we add this to the <depend> of package.xml, it appempts to build venv using 'dialogflow_task_executive/requirements.txt'. This requires having the same PYTHON_INTERPRETER for both dialogflow and chat ros package. The issue is that dialogflow_task_executive heavily relies on system Python modules, including ROS, making it difficult to use dialogflow with Python3 on Melodic
- add catkin_install_python for test, it is also change installed directory from BIN to SHARE, because we want to have same directory structure between devel and install
- add test to check if ros node is loadable If we use python2 PYTHON_INTERPRETER on 20.04, python2 fails to load rospy in /opt/ros/noetic, because rospy moduels are alraedy updated. If we use python3 PYTHON_INTERPRETER on 18.04, python3 can load rospy in /opt/ros/melodic by chance. c.f. https://github.com/jsk-ros-pkg/jsk_3rdparty/pull/367
- google_chat_ros/README.md: add troubleshooting (#450)
- fix google_chat_ros noetic build errors (#422)
- use same timestamp for one goal
(#403)
- save google chat image in /chat_notification with timestamp
- add google_chat_ros (#392)
- Contributors: Aoi Nakane, Kei Okada, Naoto Tsukamoto, Shingo Kitagawa, Yoshiki Obinata
2.1.24 (2021-07-26)
2.1.23 (2021-07-21)
2.1.22 (2021-06-10)
2.1.21 (2020-08-19)
2.1.20 (2020-08-07)
2.1.19 (2020-07-21)
2.1.18 (2020-07-20)
2.1.17 (2020-04-16 21:51)
2.1.16 (2020-04-16 15:21)
2.1.15 (2019-12-12)
2.1.14 (2019-11-21)
2.1.13 (2019-07-10)
2.1.12 (2019-05-25)
2.1.11 (2018-08-29)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
message_generation | |
std_msgs | |
actionlib_msgs | |
catkin_virtualenv | |
catkin | |
message_runtime | |
rospy | |
gdrive_ros | |
dialogflow_task_executive | |
rostest |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_3rdparty |
Launch files
- launch/google_chat.launch
-
- receiving_mode [default: url] — Google Chat API settings. Choose from url, dialogflow, pubsub, none.
- gdrive_upload_service [default: /gdrive_ros/upload] — The ROS service name of gdrive_ros upload
- upload_data_timeout [default: 20]
- download_data [default: true]
- download_data_timeout [default: 10]
- download_directory [default: /tmp]
- download_avatar [default: false]
- google_cloud_credentials_json [default: ]
- use_yaml [default: false] — Whether you use yaml file or not.
- yaml_file [default: ] — Yaml file of web settings.
- respawn [default: true]
- host [default: localhost]
- port [default: 443]
- ssl_certfile [default: default]
- ssl_keyfile [default: default]
- project_id [default: default]
- subscription_id [default: default]
- use_helper [default: true]
- to_dialogflow_client [default: false]
- debug_sound [default: false]
Messages
- msg/ActionParameter.msg
- msg/Annotation.msg
- msg/Attachment.msg
- msg/Button.msg
- msg/Card.msg
- msg/CardAction.msg
- msg/CardEvent.msg
- msg/CardHeader.msg
- msg/FormAction.msg
- msg/Image.msg
- msg/KeyValue.msg
- msg/Message.msg
- msg/MessageEvent.msg
- msg/OnClick.msg
- msg/Section.msg
- msg/SlashCommand.msg
- msg/Space.msg
- msg/SpaceEvent.msg
- msg/User.msg
- msg/WidgetMarkup.msg
Services
Plugins
Recent questions tagged google_chat_ros at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 2.1.31 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-05-13 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Kei Okada
Authors
- Yoshiki Obinata
Google Chat ROS
The ROS wrapper for Google Chat API
- Installation Guide
- Sending the message
- Receiving the message
- Handling the event
- Optional functions
- Helper nodes
1. Installation Guide
1.1 Get the API KEY
At first, you should have the permission to access the Google Chat API.
See Google Official Document. Please ensure to get JSON credetial file and save it. DO NOT LOST IT!
For JSK members, all keys are available at Google Drive. If you make new API keys, please upload them here.
1.2 Select the way how to recieve Google Chat event
The way you recieve Google Chat event from API server depends on your system. If your system has static IP and is allowed to recieve https request with specific port, please see HTTPS mode. If not, please see Pub/Sub mode.
HTTPS mode
When you send the message, the node uses Google REST API. When you recieve the message, Google Chat API sends https request to your machine and the node handles it.
You have to prepare SSL certificate. Self-signed one is not available because of Google security issue. Please use the service like Let’s Encrypt. In Google Cloud console, please choose App URL
as connection settings and fill the URL in the App URL form.
Pub/Sub mode
When you send the message, the node uses Google REST API. When you recieve the message, the node uses Google Pub/Sub API’s subscription. The node has already established its connection to Google Pub/Sub API when you launch it.
The way how to set up in Google Cloud console shows below.
1. Authorize the existing Google Chat API project to access Google Cloud Pub/Sub service
In IAM settings in the console, please add the role Pub/Sub Admin
to service account.
2. Create Pub/Sub topic and subscriber
In Pub/Sub settings in the console, please add the topic and subscriptions.
In the figure, we set the topic name chat
, the subscription name chat-sub
as an example.
Note that if you set the topic name chat
, the full name of it becomes projects/<project_name>/topics/chat
. Please confirm the subsciptions subscribes the full name not short one.
3. Grant publish rigts on your topic
In order for Google Chat to publish messages to your topic, it must have publishing rights to the topic. To grant Google Chat these permissions, assign the Pub/Sub Publisher role to the following service account
chat-api-push@system.gserviceaccount.com
4. Set Google Chat API Connection settings
Please choose Cloud Pub/Sub
as connection settings and fill the full topic name in the Topic Name form.
1.3 Install/Build the ROS node
If you want to build from the source
source /opt/ros/${ROS_DISTRO}/setup.bash
mkdir -p ~/catkin_ws/src && cd ~/catkin_ws/src
git clone https://github.com/jsk-ros-pkg/jsk_3rdparty
rosdep install --ignore-src --from-paths . -y -r
cd ..
catkin build
1.4 Launch the node
HTTPS mode
You have to set rosparams receiving_mode=https
, google_cloud_credentials_json
, host
, port
, ssl_certfile
, ssl_keyfile
.
Pub/Sub mode
You have to set rosparams receiving_mode=pubsub
, google_cloud_credentials_json
, project_id
, subscription_id
. subscription_id
would be chat-sub
if you follow Pub/Sub mode example.
Example
roslaunch google_chat_ros google_chat.launch receiving_mode:=pubsub google_cloud_credentials_json:=/path/to/<project_id>-XXXXXXXX.json project_id:=<project_id> subscription_id:=chat-sub
2. Sending the message
2.1 Understanding Google Chat Room
When you see Google Chat UI with browsers or smartphone’s apps, you may see space
, thread
. If you send new message, you must specify the space or thread you want to send the message to. You can get the space name from chat room’s URL. If it is https://mail.google.com/chat/u/0/#chat/space/XXXXXXXXXXX
, XXXXXXXXXXX
becomes the space name.
2.2 Message format
There are 2 types of messages, text and card. The card basically follows the original json structure. As the node covers all the units in here with ros action msgs, it may be complicated for you if you want to use all of them. So in Examples sections, we’ll show you simple ones.
2.3 Sending the message by actionlib
All you have to do is send Actionlib goal to ~send/goal
.
2.4 Examples
Showing the message examples with rostopic pub -1
command on bash
.
Sending a text message
File truncated at 100 lines see the full file
Changelog for package google_chat_ros
2.1.31 (2025-05-13)
2.1.30 (2025-05-10)
- google_chat_ros: enable to get therad_name message result (#516)
- Add ROS-O 24.04 test (#521)
- Contributors: Kei Okada, Yoshiki Obinata
2.1.29 (2025-01-05)
- [google_chat_ros] check whether google_chat_button's parameters include NoneType object for avoiding rospy serialization error (#501)
- [google_chat_ros] Fix an error message typo; https ==> url (#492)
- Contributors: Kei Okada, Naoto Tsukamoto
2.1.28 (2023-07-24)
2.1.27 (2023-06-24)
- fix package.xml/CMakeLists.txt to supress catkin_lint errors (#479)
- Contributors: Kei Okada
2.1.26 (2023-06-14)
- add LICENSE files (#476)
- Contributors: Kei Okada
2.1.25 (2023-06-08)
- google_chat_ros_node.py: display project_id, subscription_id (#459)
- add test to check if ros node is loadable,
(#463)
- install python files under CATKIN_PACKAGE_BIN_DESTINATION
- google_chat_ros/test_rospy_node.py: skip healper.py helper.py depends on dialogflow_task_executive. However, when we add this to the <depend> of package.xml, it appempts to build venv using 'dialogflow_task_executive/requirements.txt'. This requires having the same PYTHON_INTERPRETER for both dialogflow and chat ros package. The issue is that dialogflow_task_executive heavily relies on system Python modules, including ROS, making it difficult to use dialogflow with Python3 on Melodic
- add catkin_install_python for test, it is also change installed directory from BIN to SHARE, because we want to have same directory structure between devel and install
- add test to check if ros node is loadable If we use python2 PYTHON_INTERPRETER on 20.04, python2 fails to load rospy in /opt/ros/noetic, because rospy moduels are alraedy updated. If we use python3 PYTHON_INTERPRETER on 18.04, python3 can load rospy in /opt/ros/melodic by chance. c.f. https://github.com/jsk-ros-pkg/jsk_3rdparty/pull/367
- google_chat_ros/README.md: add troubleshooting (#450)
- fix google_chat_ros noetic build errors (#422)
- use same timestamp for one goal
(#403)
- save google chat image in /chat_notification with timestamp
- add google_chat_ros (#392)
- Contributors: Aoi Nakane, Kei Okada, Naoto Tsukamoto, Shingo Kitagawa, Yoshiki Obinata
2.1.24 (2021-07-26)
2.1.23 (2021-07-21)
2.1.22 (2021-06-10)
2.1.21 (2020-08-19)
2.1.20 (2020-08-07)
2.1.19 (2020-07-21)
2.1.18 (2020-07-20)
2.1.17 (2020-04-16 21:51)
2.1.16 (2020-04-16 15:21)
2.1.15 (2019-12-12)
2.1.14 (2019-11-21)
2.1.13 (2019-07-10)
2.1.12 (2019-05-25)
2.1.11 (2018-08-29)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
message_generation | |
std_msgs | |
actionlib_msgs | |
catkin_virtualenv | |
catkin | |
message_runtime | |
rospy | |
gdrive_ros | |
dialogflow_task_executive | |
rostest |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_3rdparty |
Launch files
- launch/google_chat.launch
-
- receiving_mode [default: url] — Google Chat API settings. Choose from url, dialogflow, pubsub, none.
- gdrive_upload_service [default: /gdrive_ros/upload] — The ROS service name of gdrive_ros upload
- upload_data_timeout [default: 20]
- download_data [default: true]
- download_data_timeout [default: 10]
- download_directory [default: /tmp]
- download_avatar [default: false]
- google_cloud_credentials_json [default: ]
- use_yaml [default: false] — Whether you use yaml file or not.
- yaml_file [default: ] — Yaml file of web settings.
- respawn [default: true]
- host [default: localhost]
- port [default: 443]
- ssl_certfile [default: default]
- ssl_keyfile [default: default]
- project_id [default: default]
- subscription_id [default: default]
- use_helper [default: true]
- to_dialogflow_client [default: false]
- debug_sound [default: false]
Messages
- msg/ActionParameter.msg
- msg/Annotation.msg
- msg/Attachment.msg
- msg/Button.msg
- msg/Card.msg
- msg/CardAction.msg
- msg/CardEvent.msg
- msg/CardHeader.msg
- msg/FormAction.msg
- msg/Image.msg
- msg/KeyValue.msg
- msg/Message.msg
- msg/MessageEvent.msg
- msg/OnClick.msg
- msg/Section.msg
- msg/SlashCommand.msg
- msg/Space.msg
- msg/SpaceEvent.msg
- msg/User.msg
- msg/WidgetMarkup.msg
Services
Plugins
Recent questions tagged google_chat_ros at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 2.1.31 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-05-13 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Kei Okada
Authors
- Yoshiki Obinata
Google Chat ROS
The ROS wrapper for Google Chat API
- Installation Guide
- Sending the message
- Receiving the message
- Handling the event
- Optional functions
- Helper nodes
1. Installation Guide
1.1 Get the API KEY
At first, you should have the permission to access the Google Chat API.
See Google Official Document. Please ensure to get JSON credetial file and save it. DO NOT LOST IT!
For JSK members, all keys are available at Google Drive. If you make new API keys, please upload them here.
1.2 Select the way how to recieve Google Chat event
The way you recieve Google Chat event from API server depends on your system. If your system has static IP and is allowed to recieve https request with specific port, please see HTTPS mode. If not, please see Pub/Sub mode.
HTTPS mode
When you send the message, the node uses Google REST API. When you recieve the message, Google Chat API sends https request to your machine and the node handles it.
You have to prepare SSL certificate. Self-signed one is not available because of Google security issue. Please use the service like Let’s Encrypt. In Google Cloud console, please choose App URL
as connection settings and fill the URL in the App URL form.
Pub/Sub mode
When you send the message, the node uses Google REST API. When you recieve the message, the node uses Google Pub/Sub API’s subscription. The node has already established its connection to Google Pub/Sub API when you launch it.
The way how to set up in Google Cloud console shows below.
1. Authorize the existing Google Chat API project to access Google Cloud Pub/Sub service
In IAM settings in the console, please add the role Pub/Sub Admin
to service account.
2. Create Pub/Sub topic and subscriber
In Pub/Sub settings in the console, please add the topic and subscriptions.
In the figure, we set the topic name chat
, the subscription name chat-sub
as an example.
Note that if you set the topic name chat
, the full name of it becomes projects/<project_name>/topics/chat
. Please confirm the subsciptions subscribes the full name not short one.
3. Grant publish rigts on your topic
In order for Google Chat to publish messages to your topic, it must have publishing rights to the topic. To grant Google Chat these permissions, assign the Pub/Sub Publisher role to the following service account
chat-api-push@system.gserviceaccount.com
4. Set Google Chat API Connection settings
Please choose Cloud Pub/Sub
as connection settings and fill the full topic name in the Topic Name form.
1.3 Install/Build the ROS node
If you want to build from the source
source /opt/ros/${ROS_DISTRO}/setup.bash
mkdir -p ~/catkin_ws/src && cd ~/catkin_ws/src
git clone https://github.com/jsk-ros-pkg/jsk_3rdparty
rosdep install --ignore-src --from-paths . -y -r
cd ..
catkin build
1.4 Launch the node
HTTPS mode
You have to set rosparams receiving_mode=https
, google_cloud_credentials_json
, host
, port
, ssl_certfile
, ssl_keyfile
.
Pub/Sub mode
You have to set rosparams receiving_mode=pubsub
, google_cloud_credentials_json
, project_id
, subscription_id
. subscription_id
would be chat-sub
if you follow Pub/Sub mode example.
Example
roslaunch google_chat_ros google_chat.launch receiving_mode:=pubsub google_cloud_credentials_json:=/path/to/<project_id>-XXXXXXXX.json project_id:=<project_id> subscription_id:=chat-sub
2. Sending the message
2.1 Understanding Google Chat Room
When you see Google Chat UI with browsers or smartphone’s apps, you may see space
, thread
. If you send new message, you must specify the space or thread you want to send the message to. You can get the space name from chat room’s URL. If it is https://mail.google.com/chat/u/0/#chat/space/XXXXXXXXXXX
, XXXXXXXXXXX
becomes the space name.
2.2 Message format
There are 2 types of messages, text and card. The card basically follows the original json structure. As the node covers all the units in here with ros action msgs, it may be complicated for you if you want to use all of them. So in Examples sections, we’ll show you simple ones.
2.3 Sending the message by actionlib
All you have to do is send Actionlib goal to ~send/goal
.
2.4 Examples
Showing the message examples with rostopic pub -1
command on bash
.
Sending a text message
File truncated at 100 lines see the full file
Changelog for package google_chat_ros
2.1.31 (2025-05-13)
2.1.30 (2025-05-10)
- google_chat_ros: enable to get therad_name message result (#516)
- Add ROS-O 24.04 test (#521)
- Contributors: Kei Okada, Yoshiki Obinata
2.1.29 (2025-01-05)
- [google_chat_ros] check whether google_chat_button's parameters include NoneType object for avoiding rospy serialization error (#501)
- [google_chat_ros] Fix an error message typo; https ==> url (#492)
- Contributors: Kei Okada, Naoto Tsukamoto
2.1.28 (2023-07-24)
2.1.27 (2023-06-24)
- fix package.xml/CMakeLists.txt to supress catkin_lint errors (#479)
- Contributors: Kei Okada
2.1.26 (2023-06-14)
- add LICENSE files (#476)
- Contributors: Kei Okada
2.1.25 (2023-06-08)
- google_chat_ros_node.py: display project_id, subscription_id (#459)
- add test to check if ros node is loadable,
(#463)
- install python files under CATKIN_PACKAGE_BIN_DESTINATION
- google_chat_ros/test_rospy_node.py: skip healper.py helper.py depends on dialogflow_task_executive. However, when we add this to the <depend> of package.xml, it appempts to build venv using 'dialogflow_task_executive/requirements.txt'. This requires having the same PYTHON_INTERPRETER for both dialogflow and chat ros package. The issue is that dialogflow_task_executive heavily relies on system Python modules, including ROS, making it difficult to use dialogflow with Python3 on Melodic
- add catkin_install_python for test, it is also change installed directory from BIN to SHARE, because we want to have same directory structure between devel and install
- add test to check if ros node is loadable If we use python2 PYTHON_INTERPRETER on 20.04, python2 fails to load rospy in /opt/ros/noetic, because rospy moduels are alraedy updated. If we use python3 PYTHON_INTERPRETER on 18.04, python3 can load rospy in /opt/ros/melodic by chance. c.f. https://github.com/jsk-ros-pkg/jsk_3rdparty/pull/367
- google_chat_ros/README.md: add troubleshooting (#450)
- fix google_chat_ros noetic build errors (#422)
- use same timestamp for one goal
(#403)
- save google chat image in /chat_notification with timestamp
- add google_chat_ros (#392)
- Contributors: Aoi Nakane, Kei Okada, Naoto Tsukamoto, Shingo Kitagawa, Yoshiki Obinata
2.1.24 (2021-07-26)
2.1.23 (2021-07-21)
2.1.22 (2021-06-10)
2.1.21 (2020-08-19)
2.1.20 (2020-08-07)
2.1.19 (2020-07-21)
2.1.18 (2020-07-20)
2.1.17 (2020-04-16 21:51)
2.1.16 (2020-04-16 15:21)
2.1.15 (2019-12-12)
2.1.14 (2019-11-21)
2.1.13 (2019-07-10)
2.1.12 (2019-05-25)
2.1.11 (2018-08-29)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
message_generation | |
std_msgs | |
actionlib_msgs | |
catkin_virtualenv | |
catkin | |
message_runtime | |
rospy | |
gdrive_ros | |
dialogflow_task_executive | |
rostest |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_3rdparty |
Launch files
- launch/google_chat.launch
-
- receiving_mode [default: url] — Google Chat API settings. Choose from url, dialogflow, pubsub, none.
- gdrive_upload_service [default: /gdrive_ros/upload] — The ROS service name of gdrive_ros upload
- upload_data_timeout [default: 20]
- download_data [default: true]
- download_data_timeout [default: 10]
- download_directory [default: /tmp]
- download_avatar [default: false]
- google_cloud_credentials_json [default: ]
- use_yaml [default: false] — Whether you use yaml file or not.
- yaml_file [default: ] — Yaml file of web settings.
- respawn [default: true]
- host [default: localhost]
- port [default: 443]
- ssl_certfile [default: default]
- ssl_keyfile [default: default]
- project_id [default: default]
- subscription_id [default: default]
- use_helper [default: true]
- to_dialogflow_client [default: false]
- debug_sound [default: false]
Messages
- msg/ActionParameter.msg
- msg/Annotation.msg
- msg/Attachment.msg
- msg/Button.msg
- msg/Card.msg
- msg/CardAction.msg
- msg/CardEvent.msg
- msg/CardHeader.msg
- msg/FormAction.msg
- msg/Image.msg
- msg/KeyValue.msg
- msg/Message.msg
- msg/MessageEvent.msg
- msg/OnClick.msg
- msg/Section.msg
- msg/SlashCommand.msg
- msg/Space.msg
- msg/SpaceEvent.msg
- msg/User.msg
- msg/WidgetMarkup.msg
Services
Plugins
Recent questions tagged google_chat_ros at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 2.1.31 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-05-13 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Kei Okada
Authors
- Yoshiki Obinata
Google Chat ROS
The ROS wrapper for Google Chat API
- Installation Guide
- Sending the message
- Receiving the message
- Handling the event
- Optional functions
- Helper nodes
1. Installation Guide
1.1 Get the API KEY
At first, you should have the permission to access the Google Chat API.
See Google Official Document. Please ensure to get JSON credetial file and save it. DO NOT LOST IT!
For JSK members, all keys are available at Google Drive. If you make new API keys, please upload them here.
1.2 Select the way how to recieve Google Chat event
The way you recieve Google Chat event from API server depends on your system. If your system has static IP and is allowed to recieve https request with specific port, please see HTTPS mode. If not, please see Pub/Sub mode.
HTTPS mode
When you send the message, the node uses Google REST API. When you recieve the message, Google Chat API sends https request to your machine and the node handles it.
You have to prepare SSL certificate. Self-signed one is not available because of Google security issue. Please use the service like Let’s Encrypt. In Google Cloud console, please choose App URL
as connection settings and fill the URL in the App URL form.
Pub/Sub mode
When you send the message, the node uses Google REST API. When you recieve the message, the node uses Google Pub/Sub API’s subscription. The node has already established its connection to Google Pub/Sub API when you launch it.
The way how to set up in Google Cloud console shows below.
1. Authorize the existing Google Chat API project to access Google Cloud Pub/Sub service
In IAM settings in the console, please add the role Pub/Sub Admin
to service account.
2. Create Pub/Sub topic and subscriber
In Pub/Sub settings in the console, please add the topic and subscriptions.
In the figure, we set the topic name chat
, the subscription name chat-sub
as an example.
Note that if you set the topic name chat
, the full name of it becomes projects/<project_name>/topics/chat
. Please confirm the subsciptions subscribes the full name not short one.
3. Grant publish rigts on your topic
In order for Google Chat to publish messages to your topic, it must have publishing rights to the topic. To grant Google Chat these permissions, assign the Pub/Sub Publisher role to the following service account
chat-api-push@system.gserviceaccount.com
4. Set Google Chat API Connection settings
Please choose Cloud Pub/Sub
as connection settings and fill the full topic name in the Topic Name form.
1.3 Install/Build the ROS node
If you want to build from the source
source /opt/ros/${ROS_DISTRO}/setup.bash
mkdir -p ~/catkin_ws/src && cd ~/catkin_ws/src
git clone https://github.com/jsk-ros-pkg/jsk_3rdparty
rosdep install --ignore-src --from-paths . -y -r
cd ..
catkin build
1.4 Launch the node
HTTPS mode
You have to set rosparams receiving_mode=https
, google_cloud_credentials_json
, host
, port
, ssl_certfile
, ssl_keyfile
.
Pub/Sub mode
You have to set rosparams receiving_mode=pubsub
, google_cloud_credentials_json
, project_id
, subscription_id
. subscription_id
would be chat-sub
if you follow Pub/Sub mode example.
Example
roslaunch google_chat_ros google_chat.launch receiving_mode:=pubsub google_cloud_credentials_json:=/path/to/<project_id>-XXXXXXXX.json project_id:=<project_id> subscription_id:=chat-sub
2. Sending the message
2.1 Understanding Google Chat Room
When you see Google Chat UI with browsers or smartphone’s apps, you may see space
, thread
. If you send new message, you must specify the space or thread you want to send the message to. You can get the space name from chat room’s URL. If it is https://mail.google.com/chat/u/0/#chat/space/XXXXXXXXXXX
, XXXXXXXXXXX
becomes the space name.
2.2 Message format
There are 2 types of messages, text and card. The card basically follows the original json structure. As the node covers all the units in here with ros action msgs, it may be complicated for you if you want to use all of them. So in Examples sections, we’ll show you simple ones.
2.3 Sending the message by actionlib
All you have to do is send Actionlib goal to ~send/goal
.
2.4 Examples
Showing the message examples with rostopic pub -1
command on bash
.
Sending a text message
File truncated at 100 lines see the full file
Changelog for package google_chat_ros
2.1.31 (2025-05-13)
2.1.30 (2025-05-10)
- google_chat_ros: enable to get therad_name message result (#516)
- Add ROS-O 24.04 test (#521)
- Contributors: Kei Okada, Yoshiki Obinata
2.1.29 (2025-01-05)
- [google_chat_ros] check whether google_chat_button's parameters include NoneType object for avoiding rospy serialization error (#501)
- [google_chat_ros] Fix an error message typo; https ==> url (#492)
- Contributors: Kei Okada, Naoto Tsukamoto
2.1.28 (2023-07-24)
2.1.27 (2023-06-24)
- fix package.xml/CMakeLists.txt to supress catkin_lint errors (#479)
- Contributors: Kei Okada
2.1.26 (2023-06-14)
- add LICENSE files (#476)
- Contributors: Kei Okada
2.1.25 (2023-06-08)
- google_chat_ros_node.py: display project_id, subscription_id (#459)
- add test to check if ros node is loadable,
(#463)
- install python files under CATKIN_PACKAGE_BIN_DESTINATION
- google_chat_ros/test_rospy_node.py: skip healper.py helper.py depends on dialogflow_task_executive. However, when we add this to the <depend> of package.xml, it appempts to build venv using 'dialogflow_task_executive/requirements.txt'. This requires having the same PYTHON_INTERPRETER for both dialogflow and chat ros package. The issue is that dialogflow_task_executive heavily relies on system Python modules, including ROS, making it difficult to use dialogflow with Python3 on Melodic
- add catkin_install_python for test, it is also change installed directory from BIN to SHARE, because we want to have same directory structure between devel and install
- add test to check if ros node is loadable If we use python2 PYTHON_INTERPRETER on 20.04, python2 fails to load rospy in /opt/ros/noetic, because rospy moduels are alraedy updated. If we use python3 PYTHON_INTERPRETER on 18.04, python3 can load rospy in /opt/ros/melodic by chance. c.f. https://github.com/jsk-ros-pkg/jsk_3rdparty/pull/367
- google_chat_ros/README.md: add troubleshooting (#450)
- fix google_chat_ros noetic build errors (#422)
- use same timestamp for one goal
(#403)
- save google chat image in /chat_notification with timestamp
- add google_chat_ros (#392)
- Contributors: Aoi Nakane, Kei Okada, Naoto Tsukamoto, Shingo Kitagawa, Yoshiki Obinata
2.1.24 (2021-07-26)
2.1.23 (2021-07-21)
2.1.22 (2021-06-10)
2.1.21 (2020-08-19)
2.1.20 (2020-08-07)
2.1.19 (2020-07-21)
2.1.18 (2020-07-20)
2.1.17 (2020-04-16 21:51)
2.1.16 (2020-04-16 15:21)
2.1.15 (2019-12-12)
2.1.14 (2019-11-21)
2.1.13 (2019-07-10)
2.1.12 (2019-05-25)
2.1.11 (2018-08-29)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
message_generation | |
std_msgs | |
actionlib_msgs | |
catkin_virtualenv | |
catkin | |
message_runtime | |
rospy | |
gdrive_ros | |
dialogflow_task_executive | |
rostest |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_3rdparty |
Launch files
- launch/google_chat.launch
-
- receiving_mode [default: url] — Google Chat API settings. Choose from url, dialogflow, pubsub, none.
- gdrive_upload_service [default: /gdrive_ros/upload] — The ROS service name of gdrive_ros upload
- upload_data_timeout [default: 20]
- download_data [default: true]
- download_data_timeout [default: 10]
- download_directory [default: /tmp]
- download_avatar [default: false]
- google_cloud_credentials_json [default: ]
- use_yaml [default: false] — Whether you use yaml file or not.
- yaml_file [default: ] — Yaml file of web settings.
- respawn [default: true]
- host [default: localhost]
- port [default: 443]
- ssl_certfile [default: default]
- ssl_keyfile [default: default]
- project_id [default: default]
- subscription_id [default: default]
- use_helper [default: true]
- to_dialogflow_client [default: false]
- debug_sound [default: false]
Messages
- msg/ActionParameter.msg
- msg/Annotation.msg
- msg/Attachment.msg
- msg/Button.msg
- msg/Card.msg
- msg/CardAction.msg
- msg/CardEvent.msg
- msg/CardHeader.msg
- msg/FormAction.msg
- msg/Image.msg
- msg/KeyValue.msg
- msg/Message.msg
- msg/MessageEvent.msg
- msg/OnClick.msg
- msg/Section.msg
- msg/SlashCommand.msg
- msg/Space.msg
- msg/SpaceEvent.msg
- msg/User.msg
- msg/WidgetMarkup.msg
Services
Plugins
Recent questions tagged google_chat_ros at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 2.1.31 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-05-13 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Kei Okada
Authors
- Yoshiki Obinata
Google Chat ROS
The ROS wrapper for Google Chat API
- Installation Guide
- Sending the message
- Receiving the message
- Handling the event
- Optional functions
- Helper nodes
1. Installation Guide
1.1 Get the API KEY
At first, you should have the permission to access the Google Chat API.
See Google Official Document. Please ensure to get JSON credetial file and save it. DO NOT LOST IT!
For JSK members, all keys are available at Google Drive. If you make new API keys, please upload them here.
1.2 Select the way how to recieve Google Chat event
The way you recieve Google Chat event from API server depends on your system. If your system has static IP and is allowed to recieve https request with specific port, please see HTTPS mode. If not, please see Pub/Sub mode.
HTTPS mode
When you send the message, the node uses Google REST API. When you recieve the message, Google Chat API sends https request to your machine and the node handles it.
You have to prepare SSL certificate. Self-signed one is not available because of Google security issue. Please use the service like Let’s Encrypt. In Google Cloud console, please choose App URL
as connection settings and fill the URL in the App URL form.
Pub/Sub mode
When you send the message, the node uses Google REST API. When you recieve the message, the node uses Google Pub/Sub API’s subscription. The node has already established its connection to Google Pub/Sub API when you launch it.
The way how to set up in Google Cloud console shows below.
1. Authorize the existing Google Chat API project to access Google Cloud Pub/Sub service
In IAM settings in the console, please add the role Pub/Sub Admin
to service account.
2. Create Pub/Sub topic and subscriber
In Pub/Sub settings in the console, please add the topic and subscriptions.
In the figure, we set the topic name chat
, the subscription name chat-sub
as an example.
Note that if you set the topic name chat
, the full name of it becomes projects/<project_name>/topics/chat
. Please confirm the subsciptions subscribes the full name not short one.
3. Grant publish rigts on your topic
In order for Google Chat to publish messages to your topic, it must have publishing rights to the topic. To grant Google Chat these permissions, assign the Pub/Sub Publisher role to the following service account
chat-api-push@system.gserviceaccount.com
4. Set Google Chat API Connection settings
Please choose Cloud Pub/Sub
as connection settings and fill the full topic name in the Topic Name form.
1.3 Install/Build the ROS node
If you want to build from the source
source /opt/ros/${ROS_DISTRO}/setup.bash
mkdir -p ~/catkin_ws/src && cd ~/catkin_ws/src
git clone https://github.com/jsk-ros-pkg/jsk_3rdparty
rosdep install --ignore-src --from-paths . -y -r
cd ..
catkin build
1.4 Launch the node
HTTPS mode
You have to set rosparams receiving_mode=https
, google_cloud_credentials_json
, host
, port
, ssl_certfile
, ssl_keyfile
.
Pub/Sub mode
You have to set rosparams receiving_mode=pubsub
, google_cloud_credentials_json
, project_id
, subscription_id
. subscription_id
would be chat-sub
if you follow Pub/Sub mode example.
Example
roslaunch google_chat_ros google_chat.launch receiving_mode:=pubsub google_cloud_credentials_json:=/path/to/<project_id>-XXXXXXXX.json project_id:=<project_id> subscription_id:=chat-sub
2. Sending the message
2.1 Understanding Google Chat Room
When you see Google Chat UI with browsers or smartphone’s apps, you may see space
, thread
. If you send new message, you must specify the space or thread you want to send the message to. You can get the space name from chat room’s URL. If it is https://mail.google.com/chat/u/0/#chat/space/XXXXXXXXXXX
, XXXXXXXXXXX
becomes the space name.
2.2 Message format
There are 2 types of messages, text and card. The card basically follows the original json structure. As the node covers all the units in here with ros action msgs, it may be complicated for you if you want to use all of them. So in Examples sections, we’ll show you simple ones.
2.3 Sending the message by actionlib
All you have to do is send Actionlib goal to ~send/goal
.
2.4 Examples
Showing the message examples with rostopic pub -1
command on bash
.
Sending a text message
File truncated at 100 lines see the full file
Changelog for package google_chat_ros
2.1.31 (2025-05-13)
2.1.30 (2025-05-10)
- google_chat_ros: enable to get therad_name message result (#516)
- Add ROS-O 24.04 test (#521)
- Contributors: Kei Okada, Yoshiki Obinata
2.1.29 (2025-01-05)
- [google_chat_ros] check whether google_chat_button's parameters include NoneType object for avoiding rospy serialization error (#501)
- [google_chat_ros] Fix an error message typo; https ==> url (#492)
- Contributors: Kei Okada, Naoto Tsukamoto
2.1.28 (2023-07-24)
2.1.27 (2023-06-24)
- fix package.xml/CMakeLists.txt to supress catkin_lint errors (#479)
- Contributors: Kei Okada
2.1.26 (2023-06-14)
- add LICENSE files (#476)
- Contributors: Kei Okada
2.1.25 (2023-06-08)
- google_chat_ros_node.py: display project_id, subscription_id (#459)
- add test to check if ros node is loadable,
(#463)
- install python files under CATKIN_PACKAGE_BIN_DESTINATION
- google_chat_ros/test_rospy_node.py: skip healper.py helper.py depends on dialogflow_task_executive. However, when we add this to the <depend> of package.xml, it appempts to build venv using 'dialogflow_task_executive/requirements.txt'. This requires having the same PYTHON_INTERPRETER for both dialogflow and chat ros package. The issue is that dialogflow_task_executive heavily relies on system Python modules, including ROS, making it difficult to use dialogflow with Python3 on Melodic
- add catkin_install_python for test, it is also change installed directory from BIN to SHARE, because we want to have same directory structure between devel and install
- add test to check if ros node is loadable If we use python2 PYTHON_INTERPRETER on 20.04, python2 fails to load rospy in /opt/ros/noetic, because rospy moduels are alraedy updated. If we use python3 PYTHON_INTERPRETER on 18.04, python3 can load rospy in /opt/ros/melodic by chance. c.f. https://github.com/jsk-ros-pkg/jsk_3rdparty/pull/367
- google_chat_ros/README.md: add troubleshooting (#450)
- fix google_chat_ros noetic build errors (#422)
- use same timestamp for one goal
(#403)
- save google chat image in /chat_notification with timestamp
- add google_chat_ros (#392)
- Contributors: Aoi Nakane, Kei Okada, Naoto Tsukamoto, Shingo Kitagawa, Yoshiki Obinata
2.1.24 (2021-07-26)
2.1.23 (2021-07-21)
2.1.22 (2021-06-10)
2.1.21 (2020-08-19)
2.1.20 (2020-08-07)
2.1.19 (2020-07-21)
2.1.18 (2020-07-20)
2.1.17 (2020-04-16 21:51)
2.1.16 (2020-04-16 15:21)
2.1.15 (2019-12-12)
2.1.14 (2019-11-21)
2.1.13 (2019-07-10)
2.1.12 (2019-05-25)
2.1.11 (2018-08-29)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
message_generation | |
std_msgs | |
actionlib_msgs | |
catkin_virtualenv | |
catkin | |
message_runtime | |
rospy | |
gdrive_ros | |
dialogflow_task_executive | |
rostest |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_3rdparty |
Launch files
- launch/google_chat.launch
-
- receiving_mode [default: url] — Google Chat API settings. Choose from url, dialogflow, pubsub, none.
- gdrive_upload_service [default: /gdrive_ros/upload] — The ROS service name of gdrive_ros upload
- upload_data_timeout [default: 20]
- download_data [default: true]
- download_data_timeout [default: 10]
- download_directory [default: /tmp]
- download_avatar [default: false]
- google_cloud_credentials_json [default: ]
- use_yaml [default: false] — Whether you use yaml file or not.
- yaml_file [default: ] — Yaml file of web settings.
- respawn [default: true]
- host [default: localhost]
- port [default: 443]
- ssl_certfile [default: default]
- ssl_keyfile [default: default]
- project_id [default: default]
- subscription_id [default: default]
- use_helper [default: true]
- to_dialogflow_client [default: false]
- debug_sound [default: false]
Messages
- msg/ActionParameter.msg
- msg/Annotation.msg
- msg/Attachment.msg
- msg/Button.msg
- msg/Card.msg
- msg/CardAction.msg
- msg/CardEvent.msg
- msg/CardHeader.msg
- msg/FormAction.msg
- msg/Image.msg
- msg/KeyValue.msg
- msg/Message.msg
- msg/MessageEvent.msg
- msg/OnClick.msg
- msg/Section.msg
- msg/SlashCommand.msg
- msg/Space.msg
- msg/SpaceEvent.msg
- msg/User.msg
- msg/WidgetMarkup.msg
Services
Plugins
Recent questions tagged google_chat_ros at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 2.1.31 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-05-13 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Kei Okada
Authors
- Yoshiki Obinata
Google Chat ROS
The ROS wrapper for Google Chat API
- Installation Guide
- Sending the message
- Receiving the message
- Handling the event
- Optional functions
- Helper nodes
1. Installation Guide
1.1 Get the API KEY
At first, you should have the permission to access the Google Chat API.
See Google Official Document. Please ensure to get JSON credetial file and save it. DO NOT LOST IT!
For JSK members, all keys are available at Google Drive. If you make new API keys, please upload them here.
1.2 Select the way how to recieve Google Chat event
The way you recieve Google Chat event from API server depends on your system. If your system has static IP and is allowed to recieve https request with specific port, please see HTTPS mode. If not, please see Pub/Sub mode.
HTTPS mode
When you send the message, the node uses Google REST API. When you recieve the message, Google Chat API sends https request to your machine and the node handles it.
You have to prepare SSL certificate. Self-signed one is not available because of Google security issue. Please use the service like Let’s Encrypt. In Google Cloud console, please choose App URL
as connection settings and fill the URL in the App URL form.
Pub/Sub mode
When you send the message, the node uses Google REST API. When you recieve the message, the node uses Google Pub/Sub API’s subscription. The node has already established its connection to Google Pub/Sub API when you launch it.
The way how to set up in Google Cloud console shows below.
1. Authorize the existing Google Chat API project to access Google Cloud Pub/Sub service
In IAM settings in the console, please add the role Pub/Sub Admin
to service account.
2. Create Pub/Sub topic and subscriber
In Pub/Sub settings in the console, please add the topic and subscriptions.
In the figure, we set the topic name chat
, the subscription name chat-sub
as an example.
Note that if you set the topic name chat
, the full name of it becomes projects/<project_name>/topics/chat
. Please confirm the subsciptions subscribes the full name not short one.
3. Grant publish rigts on your topic
In order for Google Chat to publish messages to your topic, it must have publishing rights to the topic. To grant Google Chat these permissions, assign the Pub/Sub Publisher role to the following service account
chat-api-push@system.gserviceaccount.com
4. Set Google Chat API Connection settings
Please choose Cloud Pub/Sub
as connection settings and fill the full topic name in the Topic Name form.
1.3 Install/Build the ROS node
If you want to build from the source
source /opt/ros/${ROS_DISTRO}/setup.bash
mkdir -p ~/catkin_ws/src && cd ~/catkin_ws/src
git clone https://github.com/jsk-ros-pkg/jsk_3rdparty
rosdep install --ignore-src --from-paths . -y -r
cd ..
catkin build
1.4 Launch the node
HTTPS mode
You have to set rosparams receiving_mode=https
, google_cloud_credentials_json
, host
, port
, ssl_certfile
, ssl_keyfile
.
Pub/Sub mode
You have to set rosparams receiving_mode=pubsub
, google_cloud_credentials_json
, project_id
, subscription_id
. subscription_id
would be chat-sub
if you follow Pub/Sub mode example.
Example
roslaunch google_chat_ros google_chat.launch receiving_mode:=pubsub google_cloud_credentials_json:=/path/to/<project_id>-XXXXXXXX.json project_id:=<project_id> subscription_id:=chat-sub
2. Sending the message
2.1 Understanding Google Chat Room
When you see Google Chat UI with browsers or smartphone’s apps, you may see space
, thread
. If you send new message, you must specify the space or thread you want to send the message to. You can get the space name from chat room’s URL. If it is https://mail.google.com/chat/u/0/#chat/space/XXXXXXXXXXX
, XXXXXXXXXXX
becomes the space name.
2.2 Message format
There are 2 types of messages, text and card. The card basically follows the original json structure. As the node covers all the units in here with ros action msgs, it may be complicated for you if you want to use all of them. So in Examples sections, we’ll show you simple ones.
2.3 Sending the message by actionlib
All you have to do is send Actionlib goal to ~send/goal
.
2.4 Examples
Showing the message examples with rostopic pub -1
command on bash
.
Sending a text message
File truncated at 100 lines see the full file
Changelog for package google_chat_ros
2.1.31 (2025-05-13)
2.1.30 (2025-05-10)
- google_chat_ros: enable to get therad_name message result (#516)
- Add ROS-O 24.04 test (#521)
- Contributors: Kei Okada, Yoshiki Obinata
2.1.29 (2025-01-05)
- [google_chat_ros] check whether google_chat_button's parameters include NoneType object for avoiding rospy serialization error (#501)
- [google_chat_ros] Fix an error message typo; https ==> url (#492)
- Contributors: Kei Okada, Naoto Tsukamoto
2.1.28 (2023-07-24)
2.1.27 (2023-06-24)
- fix package.xml/CMakeLists.txt to supress catkin_lint errors (#479)
- Contributors: Kei Okada
2.1.26 (2023-06-14)
- add LICENSE files (#476)
- Contributors: Kei Okada
2.1.25 (2023-06-08)
- google_chat_ros_node.py: display project_id, subscription_id (#459)
- add test to check if ros node is loadable,
(#463)
- install python files under CATKIN_PACKAGE_BIN_DESTINATION
- google_chat_ros/test_rospy_node.py: skip healper.py helper.py depends on dialogflow_task_executive. However, when we add this to the <depend> of package.xml, it appempts to build venv using 'dialogflow_task_executive/requirements.txt'. This requires having the same PYTHON_INTERPRETER for both dialogflow and chat ros package. The issue is that dialogflow_task_executive heavily relies on system Python modules, including ROS, making it difficult to use dialogflow with Python3 on Melodic
- add catkin_install_python for test, it is also change installed directory from BIN to SHARE, because we want to have same directory structure between devel and install
- add test to check if ros node is loadable If we use python2 PYTHON_INTERPRETER on 20.04, python2 fails to load rospy in /opt/ros/noetic, because rospy moduels are alraedy updated. If we use python3 PYTHON_INTERPRETER on 18.04, python3 can load rospy in /opt/ros/melodic by chance. c.f. https://github.com/jsk-ros-pkg/jsk_3rdparty/pull/367
- google_chat_ros/README.md: add troubleshooting (#450)
- fix google_chat_ros noetic build errors (#422)
- use same timestamp for one goal
(#403)
- save google chat image in /chat_notification with timestamp
- add google_chat_ros (#392)
- Contributors: Aoi Nakane, Kei Okada, Naoto Tsukamoto, Shingo Kitagawa, Yoshiki Obinata
2.1.24 (2021-07-26)
2.1.23 (2021-07-21)
2.1.22 (2021-06-10)
2.1.21 (2020-08-19)
2.1.20 (2020-08-07)
2.1.19 (2020-07-21)
2.1.18 (2020-07-20)
2.1.17 (2020-04-16 21:51)
2.1.16 (2020-04-16 15:21)
2.1.15 (2019-12-12)
2.1.14 (2019-11-21)
2.1.13 (2019-07-10)
2.1.12 (2019-05-25)
2.1.11 (2018-08-29)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
message_generation | |
std_msgs | |
actionlib_msgs | |
catkin_virtualenv | |
catkin | |
message_runtime | |
rospy | |
gdrive_ros | |
dialogflow_task_executive | |
rostest |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_3rdparty |
Launch files
- launch/google_chat.launch
-
- receiving_mode [default: url] — Google Chat API settings. Choose from url, dialogflow, pubsub, none.
- gdrive_upload_service [default: /gdrive_ros/upload] — The ROS service name of gdrive_ros upload
- upload_data_timeout [default: 20]
- download_data [default: true]
- download_data_timeout [default: 10]
- download_directory [default: /tmp]
- download_avatar [default: false]
- google_cloud_credentials_json [default: ]
- use_yaml [default: false] — Whether you use yaml file or not.
- yaml_file [default: ] — Yaml file of web settings.
- respawn [default: true]
- host [default: localhost]
- port [default: 443]
- ssl_certfile [default: default]
- ssl_keyfile [default: default]
- project_id [default: default]
- subscription_id [default: default]
- use_helper [default: true]
- to_dialogflow_client [default: false]
- debug_sound [default: false]
Messages
- msg/ActionParameter.msg
- msg/Annotation.msg
- msg/Attachment.msg
- msg/Button.msg
- msg/Card.msg
- msg/CardAction.msg
- msg/CardEvent.msg
- msg/CardHeader.msg
- msg/FormAction.msg
- msg/Image.msg
- msg/KeyValue.msg
- msg/Message.msg
- msg/MessageEvent.msg
- msg/OnClick.msg
- msg/Section.msg
- msg/SlashCommand.msg
- msg/Space.msg
- msg/SpaceEvent.msg
- msg/User.msg
- msg/WidgetMarkup.msg
Services
Plugins
Recent questions tagged google_chat_ros at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 2.1.31 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-05-13 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Kei Okada
Authors
- Yoshiki Obinata
Google Chat ROS
The ROS wrapper for Google Chat API
- Installation Guide
- Sending the message
- Receiving the message
- Handling the event
- Optional functions
- Helper nodes
1. Installation Guide
1.1 Get the API KEY
At first, you should have the permission to access the Google Chat API.
See Google Official Document. Please ensure to get JSON credetial file and save it. DO NOT LOST IT!
For JSK members, all keys are available at Google Drive. If you make new API keys, please upload them here.
1.2 Select the way how to recieve Google Chat event
The way you recieve Google Chat event from API server depends on your system. If your system has static IP and is allowed to recieve https request with specific port, please see HTTPS mode. If not, please see Pub/Sub mode.
HTTPS mode
When you send the message, the node uses Google REST API. When you recieve the message, Google Chat API sends https request to your machine and the node handles it.
You have to prepare SSL certificate. Self-signed one is not available because of Google security issue. Please use the service like Let’s Encrypt. In Google Cloud console, please choose App URL
as connection settings and fill the URL in the App URL form.
Pub/Sub mode
When you send the message, the node uses Google REST API. When you recieve the message, the node uses Google Pub/Sub API’s subscription. The node has already established its connection to Google Pub/Sub API when you launch it.
The way how to set up in Google Cloud console shows below.
1. Authorize the existing Google Chat API project to access Google Cloud Pub/Sub service
In IAM settings in the console, please add the role Pub/Sub Admin
to service account.
2. Create Pub/Sub topic and subscriber
In Pub/Sub settings in the console, please add the topic and subscriptions.
In the figure, we set the topic name chat
, the subscription name chat-sub
as an example.
Note that if you set the topic name chat
, the full name of it becomes projects/<project_name>/topics/chat
. Please confirm the subsciptions subscribes the full name not short one.
3. Grant publish rigts on your topic
In order for Google Chat to publish messages to your topic, it must have publishing rights to the topic. To grant Google Chat these permissions, assign the Pub/Sub Publisher role to the following service account
chat-api-push@system.gserviceaccount.com
4. Set Google Chat API Connection settings
Please choose Cloud Pub/Sub
as connection settings and fill the full topic name in the Topic Name form.
1.3 Install/Build the ROS node
If you want to build from the source
source /opt/ros/${ROS_DISTRO}/setup.bash
mkdir -p ~/catkin_ws/src && cd ~/catkin_ws/src
git clone https://github.com/jsk-ros-pkg/jsk_3rdparty
rosdep install --ignore-src --from-paths . -y -r
cd ..
catkin build
1.4 Launch the node
HTTPS mode
You have to set rosparams receiving_mode=https
, google_cloud_credentials_json
, host
, port
, ssl_certfile
, ssl_keyfile
.
Pub/Sub mode
You have to set rosparams receiving_mode=pubsub
, google_cloud_credentials_json
, project_id
, subscription_id
. subscription_id
would be chat-sub
if you follow Pub/Sub mode example.
Example
roslaunch google_chat_ros google_chat.launch receiving_mode:=pubsub google_cloud_credentials_json:=/path/to/<project_id>-XXXXXXXX.json project_id:=<project_id> subscription_id:=chat-sub
2. Sending the message
2.1 Understanding Google Chat Room
When you see Google Chat UI with browsers or smartphone’s apps, you may see space
, thread
. If you send new message, you must specify the space or thread you want to send the message to. You can get the space name from chat room’s URL. If it is https://mail.google.com/chat/u/0/#chat/space/XXXXXXXXXXX
, XXXXXXXXXXX
becomes the space name.
2.2 Message format
There are 2 types of messages, text and card. The card basically follows the original json structure. As the node covers all the units in here with ros action msgs, it may be complicated for you if you want to use all of them. So in Examples sections, we’ll show you simple ones.
2.3 Sending the message by actionlib
All you have to do is send Actionlib goal to ~send/goal
.
2.4 Examples
Showing the message examples with rostopic pub -1
command on bash
.
Sending a text message
File truncated at 100 lines see the full file
Changelog for package google_chat_ros
2.1.31 (2025-05-13)
2.1.30 (2025-05-10)
- google_chat_ros: enable to get therad_name message result (#516)
- Add ROS-O 24.04 test (#521)
- Contributors: Kei Okada, Yoshiki Obinata
2.1.29 (2025-01-05)
- [google_chat_ros] check whether google_chat_button's parameters include NoneType object for avoiding rospy serialization error (#501)
- [google_chat_ros] Fix an error message typo; https ==> url (#492)
- Contributors: Kei Okada, Naoto Tsukamoto
2.1.28 (2023-07-24)
2.1.27 (2023-06-24)
- fix package.xml/CMakeLists.txt to supress catkin_lint errors (#479)
- Contributors: Kei Okada
2.1.26 (2023-06-14)
- add LICENSE files (#476)
- Contributors: Kei Okada
2.1.25 (2023-06-08)
- google_chat_ros_node.py: display project_id, subscription_id (#459)
- add test to check if ros node is loadable,
(#463)
- install python files under CATKIN_PACKAGE_BIN_DESTINATION
- google_chat_ros/test_rospy_node.py: skip healper.py helper.py depends on dialogflow_task_executive. However, when we add this to the <depend> of package.xml, it appempts to build venv using 'dialogflow_task_executive/requirements.txt'. This requires having the same PYTHON_INTERPRETER for both dialogflow and chat ros package. The issue is that dialogflow_task_executive heavily relies on system Python modules, including ROS, making it difficult to use dialogflow with Python3 on Melodic
- add catkin_install_python for test, it is also change installed directory from BIN to SHARE, because we want to have same directory structure between devel and install
- add test to check if ros node is loadable If we use python2 PYTHON_INTERPRETER on 20.04, python2 fails to load rospy in /opt/ros/noetic, because rospy moduels are alraedy updated. If we use python3 PYTHON_INTERPRETER on 18.04, python3 can load rospy in /opt/ros/melodic by chance. c.f. https://github.com/jsk-ros-pkg/jsk_3rdparty/pull/367
- google_chat_ros/README.md: add troubleshooting (#450)
- fix google_chat_ros noetic build errors (#422)
- use same timestamp for one goal
(#403)
- save google chat image in /chat_notification with timestamp
- add google_chat_ros (#392)
- Contributors: Aoi Nakane, Kei Okada, Naoto Tsukamoto, Shingo Kitagawa, Yoshiki Obinata
2.1.24 (2021-07-26)
2.1.23 (2021-07-21)
2.1.22 (2021-06-10)
2.1.21 (2020-08-19)
2.1.20 (2020-08-07)
2.1.19 (2020-07-21)
2.1.18 (2020-07-20)
2.1.17 (2020-04-16 21:51)
2.1.16 (2020-04-16 15:21)
2.1.15 (2019-12-12)
2.1.14 (2019-11-21)
2.1.13 (2019-07-10)
2.1.12 (2019-05-25)
2.1.11 (2018-08-29)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
message_generation | |
std_msgs | |
actionlib_msgs | |
catkin_virtualenv | |
catkin | |
message_runtime | |
rospy | |
gdrive_ros | |
dialogflow_task_executive | |
rostest |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_3rdparty | |
jsk_robot_startup |
Launch files
- launch/google_chat.launch
-
- receiving_mode [default: url] — Google Chat API settings. Choose from url, dialogflow, pubsub, none.
- gdrive_upload_service [default: /gdrive_ros/upload] — The ROS service name of gdrive_ros upload
- upload_data_timeout [default: 20]
- download_data [default: true]
- download_data_timeout [default: 10]
- download_directory [default: /tmp]
- download_avatar [default: false]
- google_cloud_credentials_json [default: ]
- use_yaml [default: false] — Whether you use yaml file or not.
- yaml_file [default: ] — Yaml file of web settings.
- respawn [default: true]
- host [default: localhost]
- port [default: 443]
- ssl_certfile [default: default]
- ssl_keyfile [default: default]
- project_id [default: default]
- subscription_id [default: default]
- use_helper [default: true]
- to_dialogflow_client [default: false]
- debug_sound [default: false]
Messages
- msg/ActionParameter.msg
- msg/Annotation.msg
- msg/Attachment.msg
- msg/Button.msg
- msg/Card.msg
- msg/CardAction.msg
- msg/CardEvent.msg
- msg/CardHeader.msg
- msg/FormAction.msg
- msg/Image.msg
- msg/KeyValue.msg
- msg/Message.msg
- msg/MessageEvent.msg
- msg/OnClick.msg
- msg/Section.msg
- msg/SlashCommand.msg
- msg/Space.msg
- msg/SpaceEvent.msg
- msg/User.msg
- msg/WidgetMarkup.msg
Services
Plugins
Recent questions tagged google_chat_ros at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 2.1.31 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-05-13 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Kei Okada
Authors
- Yoshiki Obinata
Google Chat ROS
The ROS wrapper for Google Chat API
- Installation Guide
- Sending the message
- Receiving the message
- Handling the event
- Optional functions
- Helper nodes
1. Installation Guide
1.1 Get the API KEY
At first, you should have the permission to access the Google Chat API.
See Google Official Document. Please ensure to get JSON credetial file and save it. DO NOT LOST IT!
For JSK members, all keys are available at Google Drive. If you make new API keys, please upload them here.
1.2 Select the way how to recieve Google Chat event
The way you recieve Google Chat event from API server depends on your system. If your system has static IP and is allowed to recieve https request with specific port, please see HTTPS mode. If not, please see Pub/Sub mode.
HTTPS mode
When you send the message, the node uses Google REST API. When you recieve the message, Google Chat API sends https request to your machine and the node handles it.
You have to prepare SSL certificate. Self-signed one is not available because of Google security issue. Please use the service like Let’s Encrypt. In Google Cloud console, please choose App URL
as connection settings and fill the URL in the App URL form.
Pub/Sub mode
When you send the message, the node uses Google REST API. When you recieve the message, the node uses Google Pub/Sub API’s subscription. The node has already established its connection to Google Pub/Sub API when you launch it.
The way how to set up in Google Cloud console shows below.
1. Authorize the existing Google Chat API project to access Google Cloud Pub/Sub service
In IAM settings in the console, please add the role Pub/Sub Admin
to service account.
2. Create Pub/Sub topic and subscriber
In Pub/Sub settings in the console, please add the topic and subscriptions.
In the figure, we set the topic name chat
, the subscription name chat-sub
as an example.
Note that if you set the topic name chat
, the full name of it becomes projects/<project_name>/topics/chat
. Please confirm the subsciptions subscribes the full name not short one.
3. Grant publish rigts on your topic
In order for Google Chat to publish messages to your topic, it must have publishing rights to the topic. To grant Google Chat these permissions, assign the Pub/Sub Publisher role to the following service account
chat-api-push@system.gserviceaccount.com
4. Set Google Chat API Connection settings
Please choose Cloud Pub/Sub
as connection settings and fill the full topic name in the Topic Name form.
1.3 Install/Build the ROS node
If you want to build from the source
source /opt/ros/${ROS_DISTRO}/setup.bash
mkdir -p ~/catkin_ws/src && cd ~/catkin_ws/src
git clone https://github.com/jsk-ros-pkg/jsk_3rdparty
rosdep install --ignore-src --from-paths . -y -r
cd ..
catkin build
1.4 Launch the node
HTTPS mode
You have to set rosparams receiving_mode=https
, google_cloud_credentials_json
, host
, port
, ssl_certfile
, ssl_keyfile
.
Pub/Sub mode
You have to set rosparams receiving_mode=pubsub
, google_cloud_credentials_json
, project_id
, subscription_id
. subscription_id
would be chat-sub
if you follow Pub/Sub mode example.
Example
roslaunch google_chat_ros google_chat.launch receiving_mode:=pubsub google_cloud_credentials_json:=/path/to/<project_id>-XXXXXXXX.json project_id:=<project_id> subscription_id:=chat-sub
2. Sending the message
2.1 Understanding Google Chat Room
When you see Google Chat UI with browsers or smartphone’s apps, you may see space
, thread
. If you send new message, you must specify the space or thread you want to send the message to. You can get the space name from chat room’s URL. If it is https://mail.google.com/chat/u/0/#chat/space/XXXXXXXXXXX
, XXXXXXXXXXX
becomes the space name.
2.2 Message format
There are 2 types of messages, text and card. The card basically follows the original json structure. As the node covers all the units in here with ros action msgs, it may be complicated for you if you want to use all of them. So in Examples sections, we’ll show you simple ones.
2.3 Sending the message by actionlib
All you have to do is send Actionlib goal to ~send/goal
.
2.4 Examples
Showing the message examples with rostopic pub -1
command on bash
.
Sending a text message
File truncated at 100 lines see the full file
Changelog for package google_chat_ros
2.1.31 (2025-05-13)
2.1.30 (2025-05-10)
- google_chat_ros: enable to get therad_name message result (#516)
- Add ROS-O 24.04 test (#521)
- Contributors: Kei Okada, Yoshiki Obinata
2.1.29 (2025-01-05)
- [google_chat_ros] check whether google_chat_button's parameters include NoneType object for avoiding rospy serialization error (#501)
- [google_chat_ros] Fix an error message typo; https ==> url (#492)
- Contributors: Kei Okada, Naoto Tsukamoto
2.1.28 (2023-07-24)
2.1.27 (2023-06-24)
- fix package.xml/CMakeLists.txt to supress catkin_lint errors (#479)
- Contributors: Kei Okada
2.1.26 (2023-06-14)
- add LICENSE files (#476)
- Contributors: Kei Okada
2.1.25 (2023-06-08)
- google_chat_ros_node.py: display project_id, subscription_id (#459)
- add test to check if ros node is loadable,
(#463)
- install python files under CATKIN_PACKAGE_BIN_DESTINATION
- google_chat_ros/test_rospy_node.py: skip healper.py helper.py depends on dialogflow_task_executive. However, when we add this to the <depend> of package.xml, it appempts to build venv using 'dialogflow_task_executive/requirements.txt'. This requires having the same PYTHON_INTERPRETER for both dialogflow and chat ros package. The issue is that dialogflow_task_executive heavily relies on system Python modules, including ROS, making it difficult to use dialogflow with Python3 on Melodic
- add catkin_install_python for test, it is also change installed directory from BIN to SHARE, because we want to have same directory structure between devel and install
- add test to check if ros node is loadable If we use python2 PYTHON_INTERPRETER on 20.04, python2 fails to load rospy in /opt/ros/noetic, because rospy moduels are alraedy updated. If we use python3 PYTHON_INTERPRETER on 18.04, python3 can load rospy in /opt/ros/melodic by chance. c.f. https://github.com/jsk-ros-pkg/jsk_3rdparty/pull/367
- google_chat_ros/README.md: add troubleshooting (#450)
- fix google_chat_ros noetic build errors (#422)
- use same timestamp for one goal
(#403)
- save google chat image in /chat_notification with timestamp
- add google_chat_ros (#392)
- Contributors: Aoi Nakane, Kei Okada, Naoto Tsukamoto, Shingo Kitagawa, Yoshiki Obinata
2.1.24 (2021-07-26)
2.1.23 (2021-07-21)
2.1.22 (2021-06-10)
2.1.21 (2020-08-19)
2.1.20 (2020-08-07)
2.1.19 (2020-07-21)
2.1.18 (2020-07-20)
2.1.17 (2020-04-16 21:51)
2.1.16 (2020-04-16 15:21)
2.1.15 (2019-12-12)
2.1.14 (2019-11-21)
2.1.13 (2019-07-10)
2.1.12 (2019-05-25)
2.1.11 (2018-08-29)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
message_generation | |
std_msgs | |
actionlib_msgs | |
catkin_virtualenv | |
catkin | |
message_runtime | |
rospy | |
gdrive_ros | |
dialogflow_task_executive | |
rostest |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_3rdparty | |
jsk_robot_startup |
Launch files
- launch/google_chat.launch
-
- receiving_mode [default: url] — Google Chat API settings. Choose from url, dialogflow, pubsub, none.
- gdrive_upload_service [default: /gdrive_ros/upload] — The ROS service name of gdrive_ros upload
- upload_data_timeout [default: 20]
- download_data [default: true]
- download_data_timeout [default: 10]
- download_directory [default: /tmp]
- download_avatar [default: false]
- google_cloud_credentials_json [default: ]
- use_yaml [default: false] — Whether you use yaml file or not.
- yaml_file [default: ] — Yaml file of web settings.
- respawn [default: true]
- host [default: localhost]
- port [default: 443]
- ssl_certfile [default: default]
- ssl_keyfile [default: default]
- project_id [default: default]
- subscription_id [default: default]
- use_helper [default: true]
- to_dialogflow_client [default: false]
- debug_sound [default: false]
Messages
- msg/ActionParameter.msg
- msg/Annotation.msg
- msg/Attachment.msg
- msg/Button.msg
- msg/Card.msg
- msg/CardAction.msg
- msg/CardEvent.msg
- msg/CardHeader.msg
- msg/FormAction.msg
- msg/Image.msg
- msg/KeyValue.msg
- msg/Message.msg
- msg/MessageEvent.msg
- msg/OnClick.msg
- msg/Section.msg
- msg/SlashCommand.msg
- msg/Space.msg
- msg/SpaceEvent.msg
- msg/User.msg
- msg/WidgetMarkup.msg
Services
Plugins
Recent questions tagged google_chat_ros at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 2.1.31 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-05-13 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Kei Okada
Authors
- Yoshiki Obinata
Google Chat ROS
The ROS wrapper for Google Chat API
- Installation Guide
- Sending the message
- Receiving the message
- Handling the event
- Optional functions
- Helper nodes
1. Installation Guide
1.1 Get the API KEY
At first, you should have the permission to access the Google Chat API.
See Google Official Document. Please ensure to get JSON credetial file and save it. DO NOT LOST IT!
For JSK members, all keys are available at Google Drive. If you make new API keys, please upload them here.
1.2 Select the way how to recieve Google Chat event
The way you recieve Google Chat event from API server depends on your system. If your system has static IP and is allowed to recieve https request with specific port, please see HTTPS mode. If not, please see Pub/Sub mode.
HTTPS mode
When you send the message, the node uses Google REST API. When you recieve the message, Google Chat API sends https request to your machine and the node handles it.
You have to prepare SSL certificate. Self-signed one is not available because of Google security issue. Please use the service like Let’s Encrypt. In Google Cloud console, please choose App URL
as connection settings and fill the URL in the App URL form.
Pub/Sub mode
When you send the message, the node uses Google REST API. When you recieve the message, the node uses Google Pub/Sub API’s subscription. The node has already established its connection to Google Pub/Sub API when you launch it.
The way how to set up in Google Cloud console shows below.
1. Authorize the existing Google Chat API project to access Google Cloud Pub/Sub service
In IAM settings in the console, please add the role Pub/Sub Admin
to service account.
2. Create Pub/Sub topic and subscriber
In Pub/Sub settings in the console, please add the topic and subscriptions.
In the figure, we set the topic name chat
, the subscription name chat-sub
as an example.
Note that if you set the topic name chat
, the full name of it becomes projects/<project_name>/topics/chat
. Please confirm the subsciptions subscribes the full name not short one.
3. Grant publish rigts on your topic
In order for Google Chat to publish messages to your topic, it must have publishing rights to the topic. To grant Google Chat these permissions, assign the Pub/Sub Publisher role to the following service account
chat-api-push@system.gserviceaccount.com
4. Set Google Chat API Connection settings
Please choose Cloud Pub/Sub
as connection settings and fill the full topic name in the Topic Name form.
1.3 Install/Build the ROS node
If you want to build from the source
source /opt/ros/${ROS_DISTRO}/setup.bash
mkdir -p ~/catkin_ws/src && cd ~/catkin_ws/src
git clone https://github.com/jsk-ros-pkg/jsk_3rdparty
rosdep install --ignore-src --from-paths . -y -r
cd ..
catkin build
1.4 Launch the node
HTTPS mode
You have to set rosparams receiving_mode=https
, google_cloud_credentials_json
, host
, port
, ssl_certfile
, ssl_keyfile
.
Pub/Sub mode
You have to set rosparams receiving_mode=pubsub
, google_cloud_credentials_json
, project_id
, subscription_id
. subscription_id
would be chat-sub
if you follow Pub/Sub mode example.
Example
roslaunch google_chat_ros google_chat.launch receiving_mode:=pubsub google_cloud_credentials_json:=/path/to/<project_id>-XXXXXXXX.json project_id:=<project_id> subscription_id:=chat-sub
2. Sending the message
2.1 Understanding Google Chat Room
When you see Google Chat UI with browsers or smartphone’s apps, you may see space
, thread
. If you send new message, you must specify the space or thread you want to send the message to. You can get the space name from chat room’s URL. If it is https://mail.google.com/chat/u/0/#chat/space/XXXXXXXXXXX
, XXXXXXXXXXX
becomes the space name.
2.2 Message format
There are 2 types of messages, text and card. The card basically follows the original json structure. As the node covers all the units in here with ros action msgs, it may be complicated for you if you want to use all of them. So in Examples sections, we’ll show you simple ones.
2.3 Sending the message by actionlib
All you have to do is send Actionlib goal to ~send/goal
.
2.4 Examples
Showing the message examples with rostopic pub -1
command on bash
.
Sending a text message
File truncated at 100 lines see the full file
Changelog for package google_chat_ros
2.1.31 (2025-05-13)
2.1.30 (2025-05-10)
- google_chat_ros: enable to get therad_name message result (#516)
- Add ROS-O 24.04 test (#521)
- Contributors: Kei Okada, Yoshiki Obinata
2.1.29 (2025-01-05)
- [google_chat_ros] check whether google_chat_button's parameters include NoneType object for avoiding rospy serialization error (#501)
- [google_chat_ros] Fix an error message typo; https ==> url (#492)
- Contributors: Kei Okada, Naoto Tsukamoto
2.1.28 (2023-07-24)
2.1.27 (2023-06-24)
- fix package.xml/CMakeLists.txt to supress catkin_lint errors (#479)
- Contributors: Kei Okada
2.1.26 (2023-06-14)
- add LICENSE files (#476)
- Contributors: Kei Okada
2.1.25 (2023-06-08)
- google_chat_ros_node.py: display project_id, subscription_id (#459)
- add test to check if ros node is loadable,
(#463)
- install python files under CATKIN_PACKAGE_BIN_DESTINATION
- google_chat_ros/test_rospy_node.py: skip healper.py helper.py depends on dialogflow_task_executive. However, when we add this to the <depend> of package.xml, it appempts to build venv using 'dialogflow_task_executive/requirements.txt'. This requires having the same PYTHON_INTERPRETER for both dialogflow and chat ros package. The issue is that dialogflow_task_executive heavily relies on system Python modules, including ROS, making it difficult to use dialogflow with Python3 on Melodic
- add catkin_install_python for test, it is also change installed directory from BIN to SHARE, because we want to have same directory structure between devel and install
- add test to check if ros node is loadable If we use python2 PYTHON_INTERPRETER on 20.04, python2 fails to load rospy in /opt/ros/noetic, because rospy moduels are alraedy updated. If we use python3 PYTHON_INTERPRETER on 18.04, python3 can load rospy in /opt/ros/melodic by chance. c.f. https://github.com/jsk-ros-pkg/jsk_3rdparty/pull/367
- google_chat_ros/README.md: add troubleshooting (#450)
- fix google_chat_ros noetic build errors (#422)
- use same timestamp for one goal
(#403)
- save google chat image in /chat_notification with timestamp
- add google_chat_ros (#392)
- Contributors: Aoi Nakane, Kei Okada, Naoto Tsukamoto, Shingo Kitagawa, Yoshiki Obinata
2.1.24 (2021-07-26)
2.1.23 (2021-07-21)
2.1.22 (2021-06-10)
2.1.21 (2020-08-19)
2.1.20 (2020-08-07)
2.1.19 (2020-07-21)
2.1.18 (2020-07-20)
2.1.17 (2020-04-16 21:51)
2.1.16 (2020-04-16 15:21)
2.1.15 (2019-12-12)
2.1.14 (2019-11-21)
2.1.13 (2019-07-10)
2.1.12 (2019-05-25)
2.1.11 (2018-08-29)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
message_generation | |
std_msgs | |
actionlib_msgs | |
catkin_virtualenv | |
catkin | |
message_runtime | |
rospy | |
gdrive_ros | |
dialogflow_task_executive | |
rostest |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_3rdparty |
Launch files
- launch/google_chat.launch
-
- receiving_mode [default: url] — Google Chat API settings. Choose from url, dialogflow, pubsub, none.
- gdrive_upload_service [default: /gdrive_ros/upload] — The ROS service name of gdrive_ros upload
- upload_data_timeout [default: 20]
- download_data [default: true]
- download_data_timeout [default: 10]
- download_directory [default: /tmp]
- download_avatar [default: false]
- google_cloud_credentials_json [default: ]
- use_yaml [default: false] — Whether you use yaml file or not.
- yaml_file [default: ] — Yaml file of web settings.
- respawn [default: true]
- host [default: localhost]
- port [default: 443]
- ssl_certfile [default: default]
- ssl_keyfile [default: default]
- project_id [default: default]
- subscription_id [default: default]
- use_helper [default: true]
- to_dialogflow_client [default: false]
- debug_sound [default: false]
Messages
- msg/ActionParameter.msg
- msg/Annotation.msg
- msg/Attachment.msg
- msg/Button.msg
- msg/Card.msg
- msg/CardAction.msg
- msg/CardEvent.msg
- msg/CardHeader.msg
- msg/FormAction.msg
- msg/Image.msg
- msg/KeyValue.msg
- msg/Message.msg
- msg/MessageEvent.msg
- msg/OnClick.msg
- msg/Section.msg
- msg/SlashCommand.msg
- msg/Space.msg
- msg/SpaceEvent.msg
- msg/User.msg
- msg/WidgetMarkup.msg
Services
Plugins
Recent questions tagged google_chat_ros at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 2.1.31 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-05-13 |
Dev Status | DEVELOPED |
CI status | Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Kei Okada
Authors
- Yoshiki Obinata
Google Chat ROS
The ROS wrapper for Google Chat API
- Installation Guide
- Sending the message
- Receiving the message
- Handling the event
- Optional functions
- Helper nodes
1. Installation Guide
1.1 Get the API KEY
At first, you should have the permission to access the Google Chat API.
See Google Official Document. Please ensure to get JSON credetial file and save it. DO NOT LOST IT!
For JSK members, all keys are available at Google Drive. If you make new API keys, please upload them here.
1.2 Select the way how to recieve Google Chat event
The way you recieve Google Chat event from API server depends on your system. If your system has static IP and is allowed to recieve https request with specific port, please see HTTPS mode. If not, please see Pub/Sub mode.
HTTPS mode
When you send the message, the node uses Google REST API. When you recieve the message, Google Chat API sends https request to your machine and the node handles it.
You have to prepare SSL certificate. Self-signed one is not available because of Google security issue. Please use the service like Let’s Encrypt. In Google Cloud console, please choose App URL
as connection settings and fill the URL in the App URL form.
Pub/Sub mode
When you send the message, the node uses Google REST API. When you recieve the message, the node uses Google Pub/Sub API’s subscription. The node has already established its connection to Google Pub/Sub API when you launch it.
The way how to set up in Google Cloud console shows below.
1. Authorize the existing Google Chat API project to access Google Cloud Pub/Sub service
In IAM settings in the console, please add the role Pub/Sub Admin
to service account.
2. Create Pub/Sub topic and subscriber
In Pub/Sub settings in the console, please add the topic and subscriptions.
In the figure, we set the topic name chat
, the subscription name chat-sub
as an example.
Note that if you set the topic name chat
, the full name of it becomes projects/<project_name>/topics/chat
. Please confirm the subsciptions subscribes the full name not short one.
3. Grant publish rigts on your topic
In order for Google Chat to publish messages to your topic, it must have publishing rights to the topic. To grant Google Chat these permissions, assign the Pub/Sub Publisher role to the following service account
chat-api-push@system.gserviceaccount.com
4. Set Google Chat API Connection settings
Please choose Cloud Pub/Sub
as connection settings and fill the full topic name in the Topic Name form.
1.3 Install/Build the ROS node
If you want to build from the source
source /opt/ros/${ROS_DISTRO}/setup.bash
mkdir -p ~/catkin_ws/src && cd ~/catkin_ws/src
git clone https://github.com/jsk-ros-pkg/jsk_3rdparty
rosdep install --ignore-src --from-paths . -y -r
cd ..
catkin build
1.4 Launch the node
HTTPS mode
You have to set rosparams receiving_mode=https
, google_cloud_credentials_json
, host
, port
, ssl_certfile
, ssl_keyfile
.
Pub/Sub mode
You have to set rosparams receiving_mode=pubsub
, google_cloud_credentials_json
, project_id
, subscription_id
. subscription_id
would be chat-sub
if you follow Pub/Sub mode example.
Example
roslaunch google_chat_ros google_chat.launch receiving_mode:=pubsub google_cloud_credentials_json:=/path/to/<project_id>-XXXXXXXX.json project_id:=<project_id> subscription_id:=chat-sub
2. Sending the message
2.1 Understanding Google Chat Room
When you see Google Chat UI with browsers or smartphone’s apps, you may see space
, thread
. If you send new message, you must specify the space or thread you want to send the message to. You can get the space name from chat room’s URL. If it is https://mail.google.com/chat/u/0/#chat/space/XXXXXXXXXXX
, XXXXXXXXXXX
becomes the space name.
2.2 Message format
There are 2 types of messages, text and card. The card basically follows the original json structure. As the node covers all the units in here with ros action msgs, it may be complicated for you if you want to use all of them. So in Examples sections, we’ll show you simple ones.
2.3 Sending the message by actionlib
All you have to do is send Actionlib goal to ~send/goal
.
2.4 Examples
Showing the message examples with rostopic pub -1
command on bash
.
Sending a text message
File truncated at 100 lines see the full file
Changelog for package google_chat_ros
2.1.31 (2025-05-13)
2.1.30 (2025-05-10)
- google_chat_ros: enable to get therad_name message result (#516)
- Add ROS-O 24.04 test (#521)
- Contributors: Kei Okada, Yoshiki Obinata
2.1.29 (2025-01-05)
- [google_chat_ros] check whether google_chat_button's parameters include NoneType object for avoiding rospy serialization error (#501)
- [google_chat_ros] Fix an error message typo; https ==> url (#492)
- Contributors: Kei Okada, Naoto Tsukamoto
2.1.28 (2023-07-24)
2.1.27 (2023-06-24)
- fix package.xml/CMakeLists.txt to supress catkin_lint errors (#479)
- Contributors: Kei Okada
2.1.26 (2023-06-14)
- add LICENSE files (#476)
- Contributors: Kei Okada
2.1.25 (2023-06-08)
- google_chat_ros_node.py: display project_id, subscription_id (#459)
- add test to check if ros node is loadable,
(#463)
- install python files under CATKIN_PACKAGE_BIN_DESTINATION
- google_chat_ros/test_rospy_node.py: skip healper.py helper.py depends on dialogflow_task_executive. However, when we add this to the <depend> of package.xml, it appempts to build venv using 'dialogflow_task_executive/requirements.txt'. This requires having the same PYTHON_INTERPRETER for both dialogflow and chat ros package. The issue is that dialogflow_task_executive heavily relies on system Python modules, including ROS, making it difficult to use dialogflow with Python3 on Melodic
- add catkin_install_python for test, it is also change installed directory from BIN to SHARE, because we want to have same directory structure between devel and install
- add test to check if ros node is loadable If we use python2 PYTHON_INTERPRETER on 20.04, python2 fails to load rospy in /opt/ros/noetic, because rospy moduels are alraedy updated. If we use python3 PYTHON_INTERPRETER on 18.04, python3 can load rospy in /opt/ros/melodic by chance. c.f. https://github.com/jsk-ros-pkg/jsk_3rdparty/pull/367
- google_chat_ros/README.md: add troubleshooting (#450)
- fix google_chat_ros noetic build errors (#422)
- use same timestamp for one goal
(#403)
- save google chat image in /chat_notification with timestamp
- add google_chat_ros (#392)
- Contributors: Aoi Nakane, Kei Okada, Naoto Tsukamoto, Shingo Kitagawa, Yoshiki Obinata
2.1.24 (2021-07-26)
2.1.23 (2021-07-21)
2.1.22 (2021-06-10)
2.1.21 (2020-08-19)
2.1.20 (2020-08-07)
2.1.19 (2020-07-21)
2.1.18 (2020-07-20)
2.1.17 (2020-04-16 21:51)
2.1.16 (2020-04-16 15:21)
2.1.15 (2019-12-12)
2.1.14 (2019-11-21)
2.1.13 (2019-07-10)
2.1.12 (2019-05-25)
2.1.11 (2018-08-29)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
message_generation | |
std_msgs | |
actionlib_msgs | |
catkin_virtualenv | |
catkin | |
message_runtime | |
rospy | |
gdrive_ros | |
dialogflow_task_executive | |
rostest |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_3rdparty |
Launch files
- launch/google_chat.launch
-
- receiving_mode [default: url] — Google Chat API settings. Choose from url, dialogflow, pubsub, none.
- gdrive_upload_service [default: /gdrive_ros/upload] — The ROS service name of gdrive_ros upload
- upload_data_timeout [default: 20]
- download_data [default: true]
- download_data_timeout [default: 10]
- download_directory [default: /tmp]
- download_avatar [default: false]
- google_cloud_credentials_json [default: ]
- use_yaml [default: false] — Whether you use yaml file or not.
- yaml_file [default: ] — Yaml file of web settings.
- respawn [default: true]
- host [default: localhost]
- port [default: 443]
- ssl_certfile [default: default]
- ssl_keyfile [default: default]
- project_id [default: default]
- subscription_id [default: default]
- use_helper [default: true]
- to_dialogflow_client [default: false]
- debug_sound [default: false]
Messages
- msg/ActionParameter.msg
- msg/Annotation.msg
- msg/Attachment.msg
- msg/Button.msg
- msg/Card.msg
- msg/CardAction.msg
- msg/CardEvent.msg
- msg/CardHeader.msg
- msg/FormAction.msg
- msg/Image.msg
- msg/KeyValue.msg
- msg/Message.msg
- msg/MessageEvent.msg
- msg/OnClick.msg
- msg/Section.msg
- msg/SlashCommand.msg
- msg/Space.msg
- msg/SpaceEvent.msg
- msg/User.msg
- msg/WidgetMarkup.msg
Services
Plugins
Recent questions tagged google_chat_ros at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 2.1.31 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-05-13 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Kei Okada
Authors
- Yoshiki Obinata
Google Chat ROS
The ROS wrapper for Google Chat API
- Installation Guide
- Sending the message
- Receiving the message
- Handling the event
- Optional functions
- Helper nodes
1. Installation Guide
1.1 Get the API KEY
At first, you should have the permission to access the Google Chat API.
See Google Official Document. Please ensure to get JSON credetial file and save it. DO NOT LOST IT!
For JSK members, all keys are available at Google Drive. If you make new API keys, please upload them here.
1.2 Select the way how to recieve Google Chat event
The way you recieve Google Chat event from API server depends on your system. If your system has static IP and is allowed to recieve https request with specific port, please see HTTPS mode. If not, please see Pub/Sub mode.
HTTPS mode
When you send the message, the node uses Google REST API. When you recieve the message, Google Chat API sends https request to your machine and the node handles it.
You have to prepare SSL certificate. Self-signed one is not available because of Google security issue. Please use the service like Let’s Encrypt. In Google Cloud console, please choose App URL
as connection settings and fill the URL in the App URL form.
Pub/Sub mode
When you send the message, the node uses Google REST API. When you recieve the message, the node uses Google Pub/Sub API’s subscription. The node has already established its connection to Google Pub/Sub API when you launch it.
The way how to set up in Google Cloud console shows below.
1. Authorize the existing Google Chat API project to access Google Cloud Pub/Sub service
In IAM settings in the console, please add the role Pub/Sub Admin
to service account.
2. Create Pub/Sub topic and subscriber
In Pub/Sub settings in the console, please add the topic and subscriptions.
In the figure, we set the topic name chat
, the subscription name chat-sub
as an example.
Note that if you set the topic name chat
, the full name of it becomes projects/<project_name>/topics/chat
. Please confirm the subsciptions subscribes the full name not short one.
3. Grant publish rigts on your topic
In order for Google Chat to publish messages to your topic, it must have publishing rights to the topic. To grant Google Chat these permissions, assign the Pub/Sub Publisher role to the following service account
chat-api-push@system.gserviceaccount.com
4. Set Google Chat API Connection settings
Please choose Cloud Pub/Sub
as connection settings and fill the full topic name in the Topic Name form.
1.3 Install/Build the ROS node
If you want to build from the source
source /opt/ros/${ROS_DISTRO}/setup.bash
mkdir -p ~/catkin_ws/src && cd ~/catkin_ws/src
git clone https://github.com/jsk-ros-pkg/jsk_3rdparty
rosdep install --ignore-src --from-paths . -y -r
cd ..
catkin build
1.4 Launch the node
HTTPS mode
You have to set rosparams receiving_mode=https
, google_cloud_credentials_json
, host
, port
, ssl_certfile
, ssl_keyfile
.
Pub/Sub mode
You have to set rosparams receiving_mode=pubsub
, google_cloud_credentials_json
, project_id
, subscription_id
. subscription_id
would be chat-sub
if you follow Pub/Sub mode example.
Example
roslaunch google_chat_ros google_chat.launch receiving_mode:=pubsub google_cloud_credentials_json:=/path/to/<project_id>-XXXXXXXX.json project_id:=<project_id> subscription_id:=chat-sub
2. Sending the message
2.1 Understanding Google Chat Room
When you see Google Chat UI with browsers or smartphone’s apps, you may see space
, thread
. If you send new message, you must specify the space or thread you want to send the message to. You can get the space name from chat room’s URL. If it is https://mail.google.com/chat/u/0/#chat/space/XXXXXXXXXXX
, XXXXXXXXXXX
becomes the space name.
2.2 Message format
There are 2 types of messages, text and card. The card basically follows the original json structure. As the node covers all the units in here with ros action msgs, it may be complicated for you if you want to use all of them. So in Examples sections, we’ll show you simple ones.
2.3 Sending the message by actionlib
All you have to do is send Actionlib goal to ~send/goal
.
2.4 Examples
Showing the message examples with rostopic pub -1
command on bash
.
Sending a text message
File truncated at 100 lines see the full file
Changelog for package google_chat_ros
2.1.31 (2025-05-13)
2.1.30 (2025-05-10)
- google_chat_ros: enable to get therad_name message result (#516)
- Add ROS-O 24.04 test (#521)
- Contributors: Kei Okada, Yoshiki Obinata
2.1.29 (2025-01-05)
- [google_chat_ros] check whether google_chat_button's parameters include NoneType object for avoiding rospy serialization error (#501)
- [google_chat_ros] Fix an error message typo; https ==> url (#492)
- Contributors: Kei Okada, Naoto Tsukamoto
2.1.28 (2023-07-24)
2.1.27 (2023-06-24)
- fix package.xml/CMakeLists.txt to supress catkin_lint errors (#479)
- Contributors: Kei Okada
2.1.26 (2023-06-14)
- add LICENSE files (#476)
- Contributors: Kei Okada
2.1.25 (2023-06-08)
- google_chat_ros_node.py: display project_id, subscription_id (#459)
- add test to check if ros node is loadable,
(#463)
- install python files under CATKIN_PACKAGE_BIN_DESTINATION
- google_chat_ros/test_rospy_node.py: skip healper.py helper.py depends on dialogflow_task_executive. However, when we add this to the <depend> of package.xml, it appempts to build venv using 'dialogflow_task_executive/requirements.txt'. This requires having the same PYTHON_INTERPRETER for both dialogflow and chat ros package. The issue is that dialogflow_task_executive heavily relies on system Python modules, including ROS, making it difficult to use dialogflow with Python3 on Melodic
- add catkin_install_python for test, it is also change installed directory from BIN to SHARE, because we want to have same directory structure between devel and install
- add test to check if ros node is loadable If we use python2 PYTHON_INTERPRETER on 20.04, python2 fails to load rospy in /opt/ros/noetic, because rospy moduels are alraedy updated. If we use python3 PYTHON_INTERPRETER on 18.04, python3 can load rospy in /opt/ros/melodic by chance. c.f. https://github.com/jsk-ros-pkg/jsk_3rdparty/pull/367
- google_chat_ros/README.md: add troubleshooting (#450)
- fix google_chat_ros noetic build errors (#422)
- use same timestamp for one goal
(#403)
- save google chat image in /chat_notification with timestamp
- add google_chat_ros (#392)
- Contributors: Aoi Nakane, Kei Okada, Naoto Tsukamoto, Shingo Kitagawa, Yoshiki Obinata
2.1.24 (2021-07-26)
2.1.23 (2021-07-21)
2.1.22 (2021-06-10)
2.1.21 (2020-08-19)
2.1.20 (2020-08-07)
2.1.19 (2020-07-21)
2.1.18 (2020-07-20)
2.1.17 (2020-04-16 21:51)
2.1.16 (2020-04-16 15:21)
2.1.15 (2019-12-12)
2.1.14 (2019-11-21)
2.1.13 (2019-07-10)
2.1.12 (2019-05-25)
2.1.11 (2018-08-29)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
message_generation | |
std_msgs | |
actionlib_msgs | |
catkin_virtualenv | |
catkin | |
message_runtime | |
rospy | |
gdrive_ros | |
dialogflow_task_executive | |
rostest |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_3rdparty |
Launch files
- launch/google_chat.launch
-
- receiving_mode [default: url] — Google Chat API settings. Choose from url, dialogflow, pubsub, none.
- gdrive_upload_service [default: /gdrive_ros/upload] — The ROS service name of gdrive_ros upload
- upload_data_timeout [default: 20]
- download_data [default: true]
- download_data_timeout [default: 10]
- download_directory [default: /tmp]
- download_avatar [default: false]
- google_cloud_credentials_json [default: ]
- use_yaml [default: false] — Whether you use yaml file or not.
- yaml_file [default: ] — Yaml file of web settings.
- respawn [default: true]
- host [default: localhost]
- port [default: 443]
- ssl_certfile [default: default]
- ssl_keyfile [default: default]
- project_id [default: default]
- subscription_id [default: default]
- use_helper [default: true]
- to_dialogflow_client [default: false]
- debug_sound [default: false]
Messages
- msg/ActionParameter.msg
- msg/Annotation.msg
- msg/Attachment.msg
- msg/Button.msg
- msg/Card.msg
- msg/CardAction.msg
- msg/CardEvent.msg
- msg/CardHeader.msg
- msg/FormAction.msg
- msg/Image.msg
- msg/KeyValue.msg
- msg/Message.msg
- msg/MessageEvent.msg
- msg/OnClick.msg
- msg/Section.msg
- msg/SlashCommand.msg
- msg/Space.msg
- msg/SpaceEvent.msg
- msg/User.msg
- msg/WidgetMarkup.msg