最近無心發現騰訊AI開放平臺上提供了大量好玩的人工智能雲服務,並且是徹底免費的。只須要用QQ號登陸便可。這麼好的東西,做爲一個程序員,固然要試試了!php
從上圖能夠看出騰訊AI開放平臺提供的人工智能服務主要有天然語言處理,計算機視覺和智能語音三大類。我固然是從最簡單的天然語言處理開始學習。html
這是騰訊AI開放平臺的天然語言處理的API說明:git
https://ai.qq.com/doc/nlpbase...程序員
其實也就是咱們熟悉的Restful API調用:github
新建一個PHP文件,把下面這個連接的源代碼粘貼進去:數組
https://github.com/i042416/we...app
而後在Eclipse裏Run As->PHP CLI Application,curl
便可看到下列輸出:「騰訊AI開放平臺」這個句子,已經被騰訊人工智能成功分詞成了:騰訊,AI,開放,平臺。函數
下面就來解釋下PHP代碼的主要邏輯。學習
$appkey = 'LHGNH0usjUTRRRSA'; $params = array( 'app_id' => '2107823355', 'time_stamp' => strval(time()), 'nonce_str' => strval(rand()), 'text' => '騰訊AI開放平臺', 'sign' => '', );
第一行和第四行分別爲我在騰訊AI平臺上建立的測試應用的key和ID。第五行是發起請求的時間戳,第六行用rand()生成了一個隨機數,第七行爲但願使用騰訊AI人工智能分詞的輸入句子,第8行sign是一個須要動態計算出的簽名值。
這個簽名值在下列PHP函數調用裏計算:
$params['sign'] = getReqSign($params, $appkey);
如今進入getRegSign內部:
首先執行ksort對PHP的key-value數組$params按照key進行升序排序,能夠比較上圖升序排序前和下圖排序後的順序:
接着把字典裏每一個key-value鍵值對用key=value&key=value...這種形式鏈接起來,注意text值須要用urlencode進行編碼。
最後把鏈接好的字符串用md5函數計算出MD5哈希值,而後用strtoupper轉成大寫,這就是計算好的簽名值。
最後一步就是調用doHttpPost發送請求。
Post請求的fields仍然是key=value&key=value這種類型的鍵值對,參考下面調試器裏的截圖:
爲方便您的參考,我把調試器裏顯示的$body記錄在下面:
app_id=2107823355&time_stamp=1533960023&nonce_str=12169&text=%CC%DA%D1%B6AI%BF%AA%B7%C5%C6%BD%CC%A8&sign=EA9CAC254A17729B20FAF28757E775DD
最後發送請求,獲得結果:
curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_NOBODY, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); $response = curl_exec($curl); if ($response === false) { $response = false; break; } $code = curl_getinfo($curl, CURLINFO_HTTP_CODE); if ($code != 200) { $response = false; break; }
要獲取更多Jerry的原創技術文章,請關注公衆號"汪子熙"或者掃描下面二維碼: