Alibaba Cloud DingTalk SDK for Python

raw JSON →
2.2.45 verified Sat May 09 auth: no python

Alibaba Cloud DingTalk SDK for Python provides APIs to integrate with DingTalk (DingDing) services, including authentication, messaging, and workflow automation. Current version 2.2.45, supports Python >=3.6. Released via PyPI with regular updates.

pip install alibabacloud-dingtalk
error AttributeError: module 'alibabacloud_dingtalk' has no attribute 'client'
cause Incorrect import path; submodule not imported.
fix
Use from alibabacloud_dingtalk.client import Client
error AuthenticationError: invalid access key id
cause Missing or incorrect environment variables for credentials.
fix
Set ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET with valid credentials.
error TypeError: __init__() missing required positional argument: 'region_id'
cause Config object missing region_id parameter.
fix
Add region_id='central' to Config.
breaking Package renamed from `dingtalk` to `alibabacloud_dingtalk` in v1.x. Old imports break completely.
fix Change import to `from alibabacloud_dingtalk.client import Client`
gotcha Region ID must be set to 'central' for DingTalk API. Using 'cn-hangzhou' or other regions causes failures.
fix Set `region_id='central'` in Config.
deprecated The `send_message_in_robot` method is deprecated in favor of `robot_1_0.Client.send_message` in newer versions.
fix Use `from alibabacloud_dingtalk.robot_1_0 import Client as RobotClient` and call `RobotClient(config).send_message(req)`.

Initialize DingTalk client with credentials and send a robot message.

import os
from alibabacloud_dingtalk.client import Client
from alibabacloud_dingtalk.robot_1_0 import SendMessageRequest
from alibabacloud_tea_openapi.models import Config

config = Config(
    protocol='https',
    access_key_id=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID', ''),
    access_key_secret=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET', ''),
    region_id='central'
)
client = Client(config)
req = SendMessageRequest(
    robot_code='your_robot_code',
    open_ids=['user_id'],
    msg_key='sampleText',
    msg_param='{"content":"Hello from SDK"}'
)
try:
    resp = client.send_message_in_robot(req)
    print(f'Response: {resp.body}')
except Exception as e:
    print(f'Error: {e}')