1. 程式人生 > >php 呼叫 騰訊雲的人臉融合 ai介面

php 呼叫 騰訊雲的人臉融合 ai介面

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": "..."
    }
}