You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python环境zcrmsdk导入ZCRMRestClient报错求助(3.9+3.1.0版本)

Python 3.9 + zcrmsdk 3.1.0 导入错误修复与Lead基础功能实现

导入错误原因

zcrmsdk 3.x版本对模块结构做了彻底重构,旧版本的ZCRMRestClient、ZohoOAuth类已被废弃,官方旧文档的示例代码对应2.x版本,直接沿用会触发导入错误。

正确实现步骤

1. 确认SDK版本

确保安装指定版本:

pip install zcrmsdk==3.1.0

2. SDK初始化

3.x版本需先通过initialize()方法完成配置初始化,替代旧版本的客户端实例化:

from zcrmsdk import initialize
from zcrmsdk.oauth import OAuthToken
from zcrmsdk.modules.leads import LeadsOperations

# 配置参数(从Zoho开发者后台获取)
config = {
    "client_id": "你的客户端ID",
    "client_secret": "你的客户端密钥",
    "redirect_uri": "你的重定向URI",
    "token_storage": {
        "module": "zcrmsdk.token_storage.file_storage",
        "file_path": "./zoho_token_store.txt"
    }
}

# 初始化SDK
initialize(config)

3. 完成OAuth授权(首次运行)

首次使用需获取访问令牌,采用授权码模式:

# 生成授权URL
auth_url = OAuthToken.get_authorization_url()
print("请打开以下URL获取授权码:", auth_url)

# 输入获取到的授权码,生成令牌
auth_code = input("输入授权码: ")
OAuthToken.generate_access_token(auth_code)

4. 获取Lead数据示例

通过LeadsOperations类实现Lead列表查询或单个查询:

# 获取Lead列表
leads_ops = LeadsOperations()
response = leads_ops.get_leads()

if response.status_code == 200:
    leads = response.data
    for lead in leads:
        print(f"ID: {lead.id}, 姓名: {lead.first_name} {lead.last_name}, 邮箱: {lead.email}")
else:
    print(f"请求失败: {response.error_message}, 状态码: {response.status_code}")

# 获取单个Lead(传入Lead ID)
# single_lead_response = leads_ops.get_lead("123456789")
# if single_lead_response.status_code == 200:
#     lead = single_lead_response.data
#     print(f"单个Lead详情: {lead}")

关键注意事项

  • 所有模块操作均通过zcrmsdk.modules.xxx.XXXOperations类实现,不再依赖统一的REST客户端
  • 令牌存储支持文件、数据库等多种方式,示例采用文件存储,需确保文件路径有读写权限
  • 授权码仅能使用一次,若令牌过期,SDK会自动刷新(需确保存储的令牌信息完整)

内容的提问来源于stack exchange,提问作者bogo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 17:02:36