开发者社区> 问答> 正文

調用ASR的 录音文件识别 一 直遇 到 403

$akId = "LTAIiaToKXXXuzRJ";
$akSecret = "U78YwGydQ1XXXXX4a7hkJtKIlyMszA";
//更新api信息
$url = "https://nlsapi.aliyun.com/transcriptions";
$tempArray = array(
'app_key' => 'nls-service-telephone8khz',
'oss_link' => 'http://audiocheck.oss-cn-shanghai.aliyuncs.com/1499772383-sip28x886986518999-886277083858-101.mp3'
);
$options = array(

'http' => array(
    'header' => array(
        'Accept'=> "application/json",
        'Content-Type'=> "application/json",
        'date'=> gmdate("D, d M Y H:i:s \G\M\T"),
        'Authorization' => ''
    ),
    'method' => "POST", //可以是 GET, POST, DELETE, PUT
    'content' => json_encode($tempArray) //如有数据,请用json_encode()进行编码
)

);
$http = $options['http'];
$header = $http['header'];
$urlObj = parse_url($url);
if(empty($urlObj["query"]))

$path = $urlObj["path"];

else

$path = $urlObj["path"]."?".$urlObj["query"];

$body = $http['content'];
if(empty($body))

$bodymd5 = $body;

else

$bodymd5 = base64_encode(md5($body,true));

$stringToSign = $http['method']."n".$header['Accept']."\n".$bodymd5."n".$header['Content-Type']."\n".$header['date'];
$signature = base64_encode(

hash_hmac(
    "sha1",
    $stringToSign,
    $akSecret, true));

$authHeader = "Dataplus "."$akId".":"."$signature";
$options['http']['header']['Authorization'] = $authHeader;
$options'http' = implode(

array_map(
    function($key, $val){
        return $key.":".$val."\r\n";
    },
    array_keys($options['http']['header']),
    $options['http']['header']));

$context = stream_context_create($options);
$file = file_get_contents($url, false, $context );
echo($file);
以上除了id 跟key我遮 掉 了其餘未改奇怪的是 post 出去 一 直拿到 403不知是 我那裡錯了呢

?>

展开
收起
meluwu 2017-07-14 01:10:03 2829 0
2 条回答
写回答
取消 提交回答
  • 同问!

    2019-07-17 21:23:44
    赞同 展开评论 打赏
  • 最恨时光如流水,最怕辜负人心。

    楼主解决了吗 我也遇到同样的问题了

    2019-07-17 21:23:43
    赞同 展开评论 打赏
问答分类:
问答地址:
相关产品:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载