【按鍵精靈教程】關于聯眾打碼插件和山海插件沖突問題

總有網友問這個問題:

這個報錯通常出現在聯眾打碼插件和山海插件同時使用的時候,考慮到山海插件是我們經常的插件盡量不去改動,那么從聯眾插件方面入手。

第一個想法是修改插件,看到報錯提示變量“GetTempFile”是空值,打開兩個插件發現都含有這個變量。原本想修改一下,然后發現有點麻煩(其實是不會改,對lua不精通),所以這個想法就放棄了。

第二個想法重新寫源碼,看了一下聯眾提供的代碼以及插件內容,發現原理就是提交給聯眾服務器一個圖片base64內容,識別后獲取返回值。想想這個和別的post差不多嗎,尤其是和百度云識別啊,想法看來可行。

有了想法開始自己寫代碼了,保留聯眾提供原有代碼的框架,用其他命令替換掉使用聯眾插件部分的代碼,最終代碼如下:

Import "shanhai.lua"

Dim user = "******"? ? ? ? ? ? ? ? ? '用戶名

Dim pwd = "******"? ? ? ? ? ? ? ? ? '密碼

Dim softID = "11105"? ? ? ? ? ? ? ? ? '軟件ID,作者賬號增加軟件后獲取

Dim Secret = "******"? ? ? ? ? ? ? ? ? '安全碼,作者賬號增加軟件后獲取

Dim filepath = GetSdcardDir() & "/pictures/yzm.jpg"? ? '圖片路徑

Dim tpe = 1026? ? ? ? ? ? ? ? ? '圖像類型

Dim ot = 60? ? ? ? ? ? ? ? ? ? '超時時間(秒)

Dim minlen = 0? ? ? ? ? ? ? ? ? '圖像最小長度

Dim maxlen = 0? ? ? ? ? ? ? ? ? '圖像最大長度

Dim workerTipsId = 0?

Dim uri="http://v2-no-secure-api.jsdama.com/upload"

Dim base64=ShanHai.ReadFileBase(filepath)

Dim RetTbl, ID, Result

Dim formtable={_

"softwareId":softID,_

"softwareSecret":secret,_

"username":user,_

"password":pwd,_

"captchaData":base64,_

"captchaType":tpe,_

"captchaMinLength":minlen,_

"captchaMaxLength":maxlen,_

"workerTipsId":workerTipsId}

Dim json=encode.TableToJson(formtable)

dim Retjson=ShanHai.PostHttp(uri,json,5)

RetTbl=encode.JsonToTable(Retjson)

If RetTbl Then

? If RetTbl["code"] = 0 Then

? ? ID = RetTbl["data"]["captchaId"]

? ? Result = RetTbl["data"]["recognition"]

? ? TracePrint "圖像識別結果為: ", Result

? ? TracePrint "圖像ID為: ", ID

? Else

? ? TracePrint "圖像結果獲取失敗, 錯誤原因: ", RetTbl["message"]

? End If

Else

? TracePrint "HTTP請求發送失敗"

End If

目前測試可以正常獲取返回結果:

由于去掉聯眾插件,所以不會再出現插件沖突報錯了。同時保留了原有代碼的框架,在使用的時候基本和原來聯眾代碼沒有任何區別。當然還有兩個功能“結果報錯”和“檢查點數”沒有寫,如果你用得著的話,可以參照我的格式自己去寫一下。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。