PHP之 關於騰訊雲“請求籤名Signature”踩的坑

Signature報錯:

The provided credentials could not be validated. Please check your signature is correct。

前文引述:

做直播項目,如果你用的是騰訊雲的雲直播服務,那麼,作爲後端,不管是PHP、Java、Python,你肯定會接觸一個用來“獲取直播間狀態的接口”,即【查看直播中的流】。因爲,這個狀態不是你庫裏存的是直播中,就是直播中,它,不是實時的,需要你從騰訊雲那邊請求獲取哪些直播間正在直播,再更新到你們自己的直播間表裏。這個接口,返回的是一個列表,包含所有正在直播的直播流。

【查看直播中的流】
文檔地址:https://cloud.tencent.com/document/product/267/20472

正文吐槽:

進到這個文檔,你會看到,請求參數,返回結果,及示例。作爲一個正常的對外文檔,這是,基本的配置,但是,但是,當我們看到請求參數的時候,就不由地會產生一個疑惑,如圖:

看見這句話,你怎麼想,是隻有上圖所示的這幾個參數呢,還是,還得加上所有的公共參數?注意,【圖1】圈紅的字“僅列出了接口請求的參數和部分公共參數”,其中的“僅”,這個字用的,真是耐人尋味,到底是,就用這個所謂的“以下請求參數”,還是,還得加上所有的公共參數,又或是,只加“輸入參數”展示的這幾個公共參數?非常不清楚!

你說你要麼就全部列出來,讓人一眼就明白,要麼就說清楚,用哪幾個,非特麼整的糊里糊塗的,讓人去猜,要知道,你面對的是上億的用戶啊,就這“表達”水平,還敢拿上“檯面”,有多少人背後問候你祖宗,你知道麼?你語文是跟你師妹學的吧,整的朦朦朧朧的,談戀愛呢?!

看到這,肯定有人會點擊【公共請求參數】那幾個藍色的字,進到,功能參數頁面:
https://cloud.tencent.com/document/api/267/20459

進到這個頁面,你會看到【簽名方法V3】,【簽名方法V1】兩個大標題,若,初來乍到者,乍一看,就迷糊了,我該用哪個,這又是一個不清楚的地方,而且,文首,也沒有給你說明,這兩個大標題的使用場景。並非本人矯情,我覺得作爲騰訊這麼大的平臺,你寫出來的東西,應該通俗易懂,簡潔明瞭,否則,就是給小馬哥丟臉!

這倒還不算事,對照前面的幾個“部分功能參數”,還能確定應該是【前面方法V1】對應的一大堆“參數”。

但是,到了下面,你就得注意了:

“請求籤名”,這個參數,可是,至關重要,所有的請求騰訊雲相關的東西,沒有這個,就相當於去倉庫沒拿鑰匙!

如果你忽略,“具體計算方法參見”後的那幾個字,而是,貿貿然,去搜“簽名方法”,你可能會搜到這個地址:
https://cloud.tencent.com/document/product/267/4709

簽名算法,咦,不就是這個嗎,還能看到“Signature”的字樣,如果你繼續看下去,你就會如同出了《少年包青天》裏的雁不歸竹林的那口井,越走越遠,遠走越不知道該往哪走,最後,你就會發現這特麼變成了一個恐怖故事!【捂臉】

是的,這是個坑!不是這個文檔!!!【捂臉】

要注意“具體計算方法參見”後的那幾個字:“接口鑑權文檔”。這個在?看到這裏,很多人都可能會困惑,爲毛這裏不加個“藍字 跳轉連接”?爲毛,我又想問候你祖宗了,寫文檔的那個“隱”!小孩子寫不完作業都懂得熬夜,你特麼怎麼能偷懶呢?啊,你知不知道,就你的這一個懶,害得小馬哥被多少開發人員罵?人家是老總,就得揹你這個鍋,憑什麼?!哎,對了,“微信支付”的文檔,是不是也特麼是你寫的?!!【砍刀】

看着這明晃晃的幾個大字,你能不“想入非非”?是的,我看見“雲直播API2017”那幾個大字了,但我知道,那是毛?!

或許,你會找到“接口鑑權”,可是,你可能會,“咦,怎麼回有兩個?”這就是不加“藍字 鏈接”的後果,知道,別人爲什麼會罵你了也,寫文檔的那個,“隱”,你個SB。

衆裏尋他千百度,好想一掌劈死你!是的,終於找見了,見下:
https://cloud.tencent.com/document/api/267/20460

注意這張圖,是不是“四層相識”呢?沒錯,前面就有一張,貼出來,對比一下:

真假孫悟空,你說坑不坑!!【捂臉】

都讓人不知道該說什麼好了,跟迷宮似的,一隻手伸出去,結果出現兩隻,如同見鬼一般,是的,這就是爲什麼說是恐怖故事的原因了。

問題原因:
 

PHP攻城獅,使用http_build_query()函數的,一定要記得使用RFC3986的編碼,否則,簽名也會報錯!
切記!!不過,最好,還是用拼接,出錯少:
其他的,就沒什麼了,對了,往下拉,有彩蛋(代碼)!其實,這東西挺簡單的,但就是因爲這個偷懶的淫,讓很多人悲憤不已!好了,就到這吧,不說了!

The END!                                                         2020/3/22 01:36

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章