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 Common errors
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. Warnings
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)`.
Imports
- Client wrong
from dingtalk import Clientcorrectfrom alibabacloud_dingtalk.client import Client - SendMessageRequest
from alibabacloud_dingtalk.robot_1_0 import SendMessageRequest
Quickstart
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}')