天天看點

用白碼,快速實作企業微信群發消息

好久沒更新啦!目前我正在通過白碼低代碼開發平台開發一個crm系統,主要用于管理c端客戶,最近就想做一個群發消息功能,因為客戶是在企業微信上和消費者直接交流的,偶爾還會拉個群,在白碼平台上可通過API對接使用企業微信官網的接口實作群發消息功能,正好,平台也提供了封裝好的企業微信API,直接就能調用了,如果需要通過第三方應用對接企業微信API,

就需要現在企業微信背景建立一個應用,但平台已經提供了自動內建的功能,內建後就可以直接使用平台提供的第三方類型企業微信API。

聽說白碼出了企業微信CRM,感興趣的朋友可以去看看。下面進入正題。

用白碼,快速實作企業微信群發消息
用白碼,快速實作企業微信群發消息

目标

在crm上實作群發消息功能(企業微信)

前期準備

①建立群發消息的資料表

用白碼,快速實作企業微信群發消息

其中msgid為調用API傳回的消息id,可用于查詢群發結果(後續再做這個功能);

②根據API所需參數,外部聯系人id和成員id分别作為群發對象和發送成員,是以需要将成員id儲存到使用者資料表的一個字段作為綁定關系,同理,将外部聯系人id儲存到聯系人資料表中,可以通過API擷取到指定成員的所有外部聯系人id,成員id可直接在企業微信管理背景檢視;

用白碼,快速實作企業微信群發消息

在功能中調用上圖API可儲存所有外部聯系人id到聯系人資料表中,這裡就不詳細說明了;

整體思路

①使用者選擇群發消息類型:文本/圖檔/圖檔

②選擇任意個聯系人

③根據消息類型填寫消息内容

④調用API群發消息,成員id為目前使用者的成員id字段,外部聯系人id清單為②選擇的聯系人的外部聯系人id,消息類型和内容由①和③決定

功能步驟

1.通過互動輸入的步驟讓使用者選擇消息類型;

用白碼,快速實作企業微信群發消息
用白碼,快速實作企業微信群發消息

2.選擇群發對象(可擷取到外部聯系人id)

用白碼,快速實作企業微信群發消息

3.判斷使用者選擇的消息類型,根據消息類型讓使用者填寫對應的消息内容;

用白碼,快速實作企業微信群發消息

如:選擇了文本類型,就隻需要填寫文本内容;

用白碼,快速實作企業微信群發消息
用白碼,快速實作企業微信群發消息
用白碼,快速實作企業微信群發消息

最後再根據參數調用API群發消息

用白碼,快速實作企業微信群發消息
用白碼,快速實作企業微信群發消息

最後再根據API傳回的msgid存到這條資料中,便于之後查詢發送結果;

用白碼,快速實作企業微信群發消息
用白碼,快速實作企業微信群發消息

其他消息類型操作同理,這裡就不詳細說明了;

API參數&代碼如下

用白碼,快速實作企業微信群發消息
用白碼,快速實作企業微信群發消息
async function run($input,$output,$modules = modules){
    const wxworkThirdApi = $modules.wxworkThirdApi;
    let contact_list = [...$input.external_userid].map(v=>v["5f8941df2447e4265cd62ae3"]);
    let data = {
        chat_type: "single",
        external_userid: contact_list,
        sender: $input.userid,
        text: {
            content: $input.content
        }
    }
    switch ($input.type) {
        case "文本":
            break;

        case "圖檔":
            let image_url = $input.imgUrl;
            let mediaName = new Date().getTime() + ".png";

            //上傳臨時素材
            let media = await wxworkThirdApi.uploadMediaByUrl(image_url, "image", mediaName);
            data.image = {
                media_id: media.media_id

            }
            break;
        case "圖文":
            let img = $input.link_picurl || "";
            img = img.replace(/^https:/, "http:");
            data.link = {
                title: $input.link_title,
                picurl: img,
                desc: $input.link_desc,
                url: $input.link_url
            }

            break;
    }

    let addmsgresult = await wxworkThirdApi.request(
        {
            method: "post",
            url: "externalcontact/add_msg_template",
            data: data
        }
    )
    $output.msgid = addmsgresult.msgid;
}
           

測試結果

用白碼,快速實作企業微信群發消息
用白碼,快速實作企業微信群發消息

繼續閱讀