php 呼叫 騰訊雲的人臉融合 ai介面
阿新 • • 發佈:2018-11-15
1.登入騰訊AI開放平臺(控制檯)
2.建立應用
3.接入能力
4.開始開發
1)獲取APPID AppKey
public $APPID = **********;
public $APPKEY = **********;// 應用金鑰
2)定義引數
$params = array( 'app_id' => '10000', 'time_stamp' => '1493449657', 'nonce_str' => '20e3408a79', 'key1' => '騰訊AI開放平臺', 'key2' => '示例僅供參考', 'sign' => '', );
3)獲取簽名
$params['sign'] = getReqSign($params, $appkey);
// getReqSign :根據 介面請求引數 和 應用金鑰 計算 請求籤名 // 引數說明 // - $params:介面請求引數(特別注意:不同的介面,引數對一般不一樣,請以具體介面要求為準) // - $appkey:應用金鑰 // 返回資料 // - 簽名結果 function getReqSign($params /* 關聯陣列 */, $appkey /* 字串*/) { // 1. 字典升序排序 ksort($params); // 2. 拼按URL鍵值對 $str = ''; foreach ($params as $key => $value) { if ($value !== '') { $str .= $key . '=' . urlencode($value) . '&'; } } // 3. 拼接app_key $str .= 'app_key=' . $appkey; // 4. MD5運算+轉換大寫,得到請求籤名 $sign = strtoupper(md5($str)); return $sign; }
4)陣列內容
var_dump($params); array(6) { ["app_id"]=> string(5) "10000" ["time_stamp"]=> string(10) "1493449657" ["nonce_str"]=> string(10) "20e3408a79" ["key1"]=> string(20) "騰訊AI開放平臺" ["key2"]=> string(18) "示例僅供參考" ["sign"]=> string(32) "BE918C28827E0783D1E5F8E6D7C37A61" }
5)執行API呼叫
// doHttpPost :執行POST請求,並取回響應結果
// 引數說明
// - $url :介面請求地址
// - $params:完整介面請求引數(特別注意:不同的介面,引數對一般不一樣,請以具體介面要求為準)
// 返回資料
// - 返回false表示失敗,否則表示API成功返回的HTTP BODY部分
function doHttpPost($url, $params)
{
$curl = curl_init();
$response = false;
do
{
// 1. 設定HTTP URL (API地址)
curl_setopt($curl, CURLOPT_URL, $url);
// 2. 設定HTTP HEADER (表單POST)
$head = array(
'Content-Type: application/x-www-form-urlencoded'
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $head);
// 3. 設定HTTP BODY (URL鍵值對)
$body = http_build_query($params);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $body);
// 4. 呼叫API,獲取響應結果
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;
}
} while (0);
curl_close($curl);
return $response;
}
// 執行API呼叫
$url = 'https://api.ai.qq.com/fcgi-bin/ptu/ptu_facemerge';
$response = doHttpPost($url, $params);
echo $response;
返回狀態
{
"ret": 0,
"msg": "ok",
"data": {
"image": "..."
}
}