# py_dingtalk **Repository Path**: cyrxdzj/py_dingtalk ## Basic Information - **Project Name**: py_dingtalk - **Description**: 调用Firefox浏览器启动钉钉,基于钉钉网页版 - **Primary Language**: Python - **License**: LGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-04-07 - **Last Updated**: 2022-01-06 ## Categories & Tags **Categories**: networklib **Tags**: None ## README 禁止用作盈利目的。
如有问题,请提issue。
# 1,简介。 pyface将调用firefox浏览器,登录钉钉网页版,实现编程操纵钉钉钉钉。
# 2,运行环境 system:windows(Linux和Mac也可以,但必须修改源代码中的设置,因为源代码中的设置默认指向的geckodriver插件是windows版本。)
geckodriver下载地址:[https://npm.taobao.org/mirrors/geckodriver/v0.26.0/](https://npm.taobao.org/mirrors/geckodriver/v0.26.0/)
本程序需要安装firefox。
# 3,设置方法。 代码的前面:set_browser字典是浏览器的设置(永久保存)。
|属性名|属性值| | --- | --- | |geckodriver_path|指向geckodriver可执行文件路径。默认:w_geckodriver.exe。| |is_headless|是否静默运行。True or False。| |time_limit|刷新二维码的超时限制。单位是秒。数字。| 也可以这么设置(不会永久保存):
set_browser_dict["geckodriver_path/is_headless/time_limit"]==xx
也可以这样(这是函数原型,如何调用,自己领悟。也不会永久保存。):
~~~python set_browser(geckodriver_path=None,is_headless=None,time_limit=None) ~~~ 附geckodriver在三个平台上的可执行文件路径:
|平台|路径| | --- | --- | |Windows|./w/geckodriver.exe| |Mac|./m/geckodriver| |Linux|./l/geckodriver| 顺便说句,如果运行时报错,可尝试把相对路径改为绝对路径。绝对路径位置,请见:[6,附录](https://gitee.com/cyrxdzj/py_dingtalk/blob/master/README.md#6%E9%99%84%E5%BD%95)。如果还是报错,请把geckodriver所处的文件夹加入PATH变量中。
# 4,定义 ![定义](https://images.gitee.com/uploads/images/2020/0423/184856_33216476_7354699.png) # 5,使用 类名:Dingtalk。
首先,请初始化一个对象(无参调用初始化函数)。
- 调用get_qr()函数获取二维码的PIL对象(调用PIL对象.show()函数显示图片)。注意,此调用会使之前的二维码失效。
- 调用get_friends()函数获取所有联系人。
- 调用get_latest_msg(name)获取联系人name最后的消息。请参见:4,定义。注意,如果你刚刚发了消息,那返回的结果就是你发出去的消息。
- 调用get_latest_time(name)获取联系人name最后的消息的发送时间。
- 调用send_msg(name,msg)可向联系人name发送消息msg。
- 调用send_file(name,file_path)向联系人name发送路径是file_path的文件。
# 6,附录 #### 6,1 关于geckodriver。 geckodriver就在__init__.py的目录下的某个文件夹,视系统而定。
可以用以下方法快速获得__init__.py的位置:
~~~python import py_dingtalk print(py_dingtalk.__file__) ~~~ #### 6,2 关于异常。 异常名:PDError。 可用以下方法捕获异常: ~~~python execpt PDError: print("error") #or execpt (PDError),e: print("error",e) ~~~