Dingding Operators¶
Prerequisite Tasks¶
- To use this operators, you must do a few things:
- Add custom robot to chat group group which you want to send a message. 
- Put the access token in the password field of the - dingding_defaultConnection. Note: You need only token value rather than the whole webhook string.
 
Basic Usage¶
Use the DingdingOperator
to send message through DingTalk Custom Robot:
text_msg_remind_none = DingdingOperator(
    task_id="text_msg_remind_none",
    message_type="text",
    message="Airflow dingding text message remind none",
    at_mobiles=None,
    at_all=False,
)
Remind users in message¶
Use parameters at_mobiles and at_all to remind specific users when you send message,
at_mobiles will be ignored When at_all is set to True:
text_msg_remind_all = DingdingOperator(
    task_id="text_msg_remind_all",
    message_type="text",
    message="Airflow dingding text message remind all users in group",
    # list of user phone/email here in the group
    # when at_all is specific will cover at_mobiles
    at_mobiles=["156XXXXXXXX", "130XXXXXXXX"],
    at_all=True,
)
Send rich text message¶
The DingdingOperator
can send rich text messages including link, markdown, actionCard and feedCard
through DingTalk Custom Robot.
A rich text message can not remind specific users except by using markdown type message:
markdown_msg = DingdingOperator(
    task_id="markdown_msg",
    message_type="markdown",
    message={
        "title": "Airflow dingding markdown message",
        "text": "# Markdown message title\n"
        "content content .. \n"
        "### sub-title\n"
        "",
    },
    at_mobiles=["156XXXXXXXX"],
    at_all=False,
)
Sending messages from a Task callback¶
DingdingHook could handle task callback by writing a callback function
and then pass the function to sla_miss_callback, on_success_callback, on_failure_callback,
or on_retry_callback. Here we use on_failure_callback as an example:
def failure_callback(context):
    """
    The function that will be executed on failure.
    :param context: The context of the executed task.
    """
    message = f"The task {context['ti'].task_id} failed"
    DingdingHook(message_type="text", message=message, at_all=True).send()
Changing connection host if you need¶
The DingdingOperator operator
post http requests using default host https://oapi.dingtalk.com,
if you need to change the host used you can set the host field of the connection.