Coder Social home page Coder Social logo

dingtalk-sdk's Introduction

007gzs 1

sadfjdsf sdfjdsjafl

dingtalk-sdk's People

Contributors

007gzs avatar cdanlover avatar frankxiongzz avatar funnyang avatar liwei9902 avatar wlhet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dingtalk-sdk's Issues

获取角色组信息错误

源码写的是deleterole,
self._top_request(
'dingtalk.corp.role.deleterole',
{'group_id': group_id},
result_processor=lambda x: x['role_group']
)

access_token is None

when I try to use dingtalk like this:
from dingtalk import SecretClient
def get_sub_dept_id_list(corp_id, corp_secret):
client = SecretClient(corp_id, corp_secret)
sub_dept_list = client.department.list_ids()
return sub_dept_list

there is a problem:
File "/usr/local/Cellar/python3/3.5.0/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/dingtalk/client/init.py", line 83, in _handle_pre_request
uri = '%s%saccess_token=%s' % (uri, '&' if '?' in uri else '?', self.access_token)
File "/usr/local/Cellar/python3/3.5.0/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/dingtalk/client/init.py", line 43, in access_token
token = ret['access_token']
TypeError: 'NoneType' object is not subscriptable

the access_token seems to be None

but I am sure the corp_id and corp_secret is working when I try like this:
def get_access_token(corp_id, corp_secret):
url = 'https://oapi.dingtalk.com/gettoken?corpid={}&corpsecret={}'.format(corp_id, corp_secret)
request = urllib.request.Request(url)
response = urllib.request.urlopen(request)
response_str = response.read().decode("utf-8")
response_dict = json.loads(response_str)
error_code_key = "errcode"
error_message = "errmsg"
access_token_key = "access_token"
if response_dict[error_code_key] == 0 and response_dict[error_message] == "ok":
return response_dict[access_token_key]
else:
return None

I get the access_token

if there are somthing wrong , please tell me , thank you very much!!

文档中接口没有返回值

实际中发现大多接口调用的返回值都进行了修改。并不是返回原始的值
建议要么返回原始的值,要么在文档中详细指明会返回什么格式的值,且对不同errcode的处理方式(有些接口不同的errcode后续的处理方式也会不同)

AttributeError: 'module' object has no attribute '_create_unverified_context'

python 2.7.8(pip 9.0.1)安装时报错,
AttributeError: 'module' object has no attribute '_create_unverified_context'

修改了setup.py安装成功

try:
_create_unverified_https_context = ssl._create_unverified_context
except AttributeError:
# Legacy Python that doesn't verify HTTPS certificates by default
pass
else:
# Handle target environment that doesn't support HTTPS verification
ssl._create_default_https_context = _create_unverified_https_context

企业会话消息异步发送报错

以下代码有误,根据钉钉对该接口的规定,dept_id_list 与 userid_list 可不传,若传不能为空:
文档链接:https://open-doc.dingtalk.com/microapp/serverapi2/pgoxpy
def asyncsend(self, msg_body, agent_id, userid_list=(), dept_id_list=(), to_all_user=False):
"""
企业会话消息异步发送

    :param msg_body: BodyBase 消息体
    :param agent_id: 微应用的id
    :param userid_list: 接收者的用户userid列表
    :param dept_id_list: 接收者的部门id列表
    :param to_all_user: 是否发送给企业全部用户
    :return: 任务id
    """
    userid_list = ",".join(map(to_text, userid_list))
    dept_id_list = ",".join(map(to_text, dept_id_list))

    if isinstance(msg_body, BodyBase):
        msg_body = msg_body.get_dict()
    msgtype = msg_body['msgtype']
    msgcontent = json.dumps(msg_body[msgtype])
    return self._top_request(
        'dingtalk.corp.message.corpconversation.asyncsend',
        {
            'msgtype': msgtype,
            'agent_id': agent_id,
            'msgcontent': msgcontent,
            'userid_list': userid_list,
            'dept_id_list': dept_id_list,
            'to_all_user': to_all_user
        },
        result_processor=lambda x: x['task_id']
    )

所以给dept_id_list=()会报错

processinstance_create 报错 KeyError: 'process_instance_id'

参数配置后能够拉取到通过钉钉客户端新增的审批,但是通过该sdk创建审批时返回:
Traceback (most recent call last):
File "/Users/pitaya/PycharmProjects/jm/tools/dingding_shenpi.py", line 24, in
dingdingsp()
File "/Users/pitaya/PycharmProjects/jm/tools/dingding_shenpi.py", line 18, in dingdingsp
cc_list)
File "/Users/pitaya/.pyenv/versions/3.6.3/lib/python3.6/site-packages/dingtalk/client/api/bpms.py", line 108, in processinstance_create
result_processor=lambda x: x['process_instance_id']
File "/Users/pitaya/.pyenv/versions/3.6.3/lib/python3.6/site-packages/dingtalk/client/api/base.py", line 26, in _top_request
return self.client.top_request(method, params, format, v, simplify, partner_id, url, **kwargs)
File "/Users/pitaya/.pyenv/versions/3.6.3/lib/python3.6/site-packages/dingtalk/client/base.py", line 215, in top_request
return self._request('POST', base_url, params=reqparams, top_response_key=response_key, **kwargs)
File "/Users/pitaya/.pyenv/versions/3.6.3/lib/python3.6/site-packages/dingtalk/client/base.py", line 83, in _request
res, method, url, result_processor, top_response_key, **kwargs
File "/Users/pitaya/.pyenv/versions/3.6.3/lib/python3.6/site-packages/dingtalk/client/base.py", line 159, in _handle_result
return result if not result_processor else result_processor(result)
File "/Users/pitaya/.pyenv/versions/3.6.3/lib/python3.6/site-packages/dingtalk/client/api/bpms.py", line 108, in
result_processor=lambda x: x['process_instance_id']
KeyError: 'process_instance_id'

Python 3.6.3

异步发送消息报错

相同的消息内容异步发送消息会报错, 同步的不会
具体如下:
同步:
image
异步:
image

会话 获取群会话请求方法错误

源码

def get(self, chatid):
        """
        获取会话

        :param chatid: 群会话的id
        :return: 群会话信息
        """
        return self._post(
            '/chat/get',
            {'chatid': chatid},
            result_processor=lambda x: x['chat_info']
        )

钉钉文档

请求方式:GET(HTTPS)
请求地址:https://oapi.dingtalk.com/chat/get?access_token=ACCESS_TOKEN

发起审批流, bpms文件processinstance_create方法中有问题

for name, value in form_component_values.item():
data = {'name': name}
if isinstance(value, (list, tuple)):
if len(value) > 1:
data['ext_value'] = value[1]
value = value[0]
data['value'] = value
form_component_value_list.append(data)

form_component_values参数传入 OrderedDict出错,迭代现在应该是form_component_values.items(),望修复。

智能人事添加待入职还是报错

报错:the JSON object must be str, bytes or bytearray, not 'dict'
代码位置:
def addpreentry(self, name, mobile, pre_entry_time=None, op_userid=None, extend_info=None):
"""
智能人事添加企业待入职员工

    :param name: 员工姓名
    :param mobile: 手机号
    :param pre_entry_time: 预期入职时间
    :param op_userid: 操作人userid
    :param extend_info: 扩展信息
    :return:
    """
    if isinstance(pre_entry_time, (datetime.date, datetime.datetime)):
        pre_entry_time = pre_entry_time.strftime(self.DATE_TIME_FORMAT)
    if isinstance(extend_info, dict):
        extend_info = json.loads(extend_info)

    return self._top_request(
        "dingtalk.oapi.smartwork.hrm.employee.addpreentry",
        optionaldict({
            "param": {
                "name": name,
                "mobile": mobile,
                "pre_entry_time": pre_entry_time,
                "op_userid": op_userid,
                "extend_info": extend_info
            }
        })
    )

新建审批单(dingtalk.client.api.Bpms.processinstance_create) 问题

这个接口是post的为啥最后提交的时候变成get了,看半天代码,不知道哪里变成get的

Traceback (most recent call last):
File "/usr/share/miniconda3/envs/ddapi/lib/python3.6/site-packages/dingtalk/client/base.py", line 71, in _request
res.raise_for_status()
File "/usr/share/miniconda3/envs/ddapi/lib/python3.6/site-packages/requests/models.py", line 941, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 414 Client Error: Request-URI Too Large for url: https://eco.taobao.com/router/rest?process_code=xxxxxxF&originator_user_id=123456&dept_id=456789&form_component_values=form_component_values

有权鉴计算的代码吗?

老师好:
钉钉 jsapi 中,有许多现成的UI,如:biz.contact.complexPicker
但这种 api ,需要权鉴计算。
请您您这个包中,有权鉴计算的 api 吗?
可以给我一个 python 权鉴计算的代码吗?

智能人事接口-新增待入职人员接口好像有误

经过测试,extend_info 必须是string格式,可以不传
官方文档:https://open-doc.dingtalk.com/microapp/serverapi2/dhlu4d

def addpreentry(self, name, mobile, pre_entry_time=None, op_userid=None, extend_info=None):
    """
    智能人事添加企业待入职员工

    :param param: 添加待入职入参
    """
    if isinstance(pre_entry_time, (datetime.date, datetime.datetime)):
        pre_entry_time = pre_entry_time.strftime(self.DATE_TIME_FORMAT)
    if isinstance(extend_info, dict):
        extend_info = json.loads(extend_info)

    return self._top_request(
        "dingtalk.oapi.smartwork.hrm.employee.addpreentry",
        {
            "param": {
                "name": name,
                "mobile": mobile,
                "pre_entry_time": pre_entry_time,
                "op_userid": op_userid,
                "extend_info": extend_info
            }
        }
    )

cannot import name 'AppKeyClient' from 'dingtalk'

换了pycharm和vs,本地环境还是线上环境,都是一个问题,一开始还能执行成功,过一会就不行了,开始报错,不知道什么原因?
Exception has occurred: ImportError
cannot import name 'AppKeyClient' from 'dingtalk' (c:\Users\zuyukun\Desktop\Dingtalk\code\dingtalk.py)
File "C:\Users\zuyukun\Desktop\Dingtalk\code\dingtalk.py", line 1, in
from dingtalk import AppKeyClient, SecretClient
File "C:\Users\zuyukun\Desktop\Dingtalk\code\dingtalk.py", line 1, in
from dingtalk import AppKeyClient, SecretClient

待办更新报错

报错:argument of type 'bool' is not iterable
官方文档:https://open-doc.dingtalk.com/microapp/serverapi2/cxls8y
def update(self, userid, record_id):
"""
更新待办事项状态

    :param userid: 用户id
    :param record_id: 待办事项唯一id
    """
    return self._top_request(
        "dingtalk.oapi.workrecord.update",
        {"userid": userid, "record_id": record_id},
        result_processor=lambda x: x['result']
    )

按道理应该返回result �true 或者false的。不知为何没有返回值。

添加回调时出现 http statusCode is:403

添加钉钉回调时,出现错误
DingTalkClientException at /api/dingtalk/corp/add/callback/
Error code: 71012, message: url地址访问异常,错误原因为:java.net.SocketTimeoutException: Read timed out
再刷新下又出现以下错误
Error code: 71012, message: url地址访问异常,错误原因为:http statusCode is:403

怎么解决啊,谢谢

更新待办还是报错

File "xx\python\lib\site-packages\dingtalk\client\base.py", line 130, in _handle_result
if ('success' in top_result and not top_result['success']) or (
TypeError: argument of type 'bool' is not iterable

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.