php 使用钉钉发送图片、OA、link消息,钉钉接口开发

缘起:因为很多公司上班使用钉钉发送消息,钉钉群交流,钉钉文档,以及有必要的钉钉模板消息提醒特定的钉钉用户。所以钉钉消息与公司系统对接作为工作业务通知何尝不可。
本公司因为已经彻底放弃了微信聊天,所有线上及公司活动通知,全部放到了电脑端的钉钉上,而且老板强制使用。对于一些紧急业务的通知显得迫切。例如:
在这里插入图片描述
以上就是钉钉接收到的模版消息。开过发微信公众号和小程序模板消息的应该很清楚是怎么一回事,点击这个消息会跳到一个具体的详情页。

根据钉钉规则,首先需要登录管理后台创建一个小程序,https://open-dev.dingtalk.com/#/corpeapp
在这里插入图片描述
获取以下三个参数:
在这里插入图片描述

综合钉钉的各种消息:

文本消息(text)
图片消息
语音消息
文件消息
链接消息
OA消息
markdown消息
卡片消息

笔者觉得钉钉的OA消息值得一试,而且提示信息明确充分、展示位绝佳,其他则不考虑。
例如:
在这里插入图片描述

发送OA消息详细接口:

 public static function sendDingMessage($order_info, $one_time)
    {
   
        $order_goods_inf = db('order_goods')
            ->where(['order_id' => $order_info['id']])
            ->field('goods_id,goods_name,spec_key,goods_price')
            ->select();

        $url = db('goods_imgs')
            ->where(['goods_id' => $order_goods_inf[0]['goods_id'], 'main_figure' => 1])
            ->value('path');

        $ding = new Dingtalk();
        $SendToUser_data = [
            'userid_list' => '191902624820360246,'
                . db('ding_users')->getfieldbymerchant_users_id($order_info['merchants_user_id'], 'userid')
            ,#发送给谁,钉钉给定的内部企业专属Id,这里我已经存到数据库里面了,下面接口有,可以自己获取
            'agent_id' => '1122238532232266',#这个是注册小程序的那个agent_id
            'msg' => [
                "msgtype" => 'oa',#类型 OA
                'oa' => [
                    'message_url' => 'http://www.baidu.com/user/#/order-management',#详情地址
                    'head' => [
                        'bgcolor' => 'FFBBBBBB',#此处默认
                        'text' => '头部标题'#此处默认
                    ],

                    'body' => [
                        'title' => '订单物流异常',#消息的标题
                        'form' => [ #以下为具体的条目,详情参考上面的图片
                            [
                                "key" => "商品:",
                                "value" => $order_goods_inf[0]['goods_name'] . ' ' . $order_goods_inf[0]['spec_key']
                            ],
                            [
                                "key" => "件数:",
                                "value" => count($order_goods_inf)
                            ],
                            [
                                "key" => "订单:",
                                "value" => $order_info['order_sn']
                            ],
                            [
                                "key" => "运单:",
                                "value" => $order_info['tracking_num']
                            ],
                            [
                                "key" => "所属:",
                                "value" => db("store")->getfieldbyid($order_info['store_id'], 'store_name')
                            ],
                            [
                                "key" => "物流公司:",
                                "value" => $order_info['shipping_name']
                            ],
                            [
                                "key" => "订单处理时间:",
                                "value" => date('Y-m-d', $order_info['create_at'])
                            ],
                            [
                                "key" => "最后更新时间:",
                                "value" => date('Y-m-d', $one_time)
                            ],
                            [
                                "key" => "备注:",
                                "value" => "若完结,请忽略。"
                            ],

                        ],
                        'rich' => [
                            "num" => $order_goods_inf[0]['goods_price'],
                            "unit" => "美元"
                        ],
                        "content" => "你的订单{
     $order_info['order_sn']}的物流信息超过" . config('queue.msg_time2') . "天未更新,可能存在异常,单号:{
     $order_info['tracking_num']}",#具体内容
                        "image" => $ding->uploadDingFile($url . '?x-oss-process=image/resize,m_fixed,h_350,w_600'), #这里的图片需要先获取媒体id,看下面的接口
                        "file_count" => "0",#附件个数
                        "author" => "321design订单消息"  #发送主题
                    ],
                ]
            ]
        ];


        $result = $ding->sendOaMsg($SendToUser_data);
        return $result;
    }

钉钉通用接口:Dingtalk.php

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2021/3/18
 * Time: 15:42
 */

namespace app\dingtalk;

/**
 * 钉钉APi 开发接口
 * 参考 https://developers.dingtalk.com/document/app/obtain-a-sub-department-id-list
 * Class Dingtalk
 * @package app\dingtalk
 */
class Dingtalk
{
   

    /**
     * @var string
     */
    protected $AgentId;


    /**
     * @var string
     */
    protected $AppKey;


    /**
     * @var string
     */
    protected $AppSecret;


    /**
     * 构造函数
     * Dingtalk constructor.
     */
    public function __construct()
    {
   
        $this->AgentId = '1122859266';
        $this->AppKey = 'dingiijc0aafnnudvaek';
        $this->AppSecret = 'zBzFLrEmpWhYGnXD3TgO4J53ihrQupvglZ1oq9IHHOtkclqKvVuDBBYIV667CCev';
    }


    /**
     * 获得query 参数access_token
     * @return bool|mixed|string
     */
    protected function getAccessToken()
    {
   
        $gettoken_config = 'https://oapi.dingtalk.com/gettoken' . '?corpid=' . $this->AppKey . '&corpsecret=' . $this->AppSecret;
        $access_token = $this
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jason Ho

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值