php 讯飞星火 图片生成(文生图)

哎,你不得不说的问题   讯飞的文档写的让人眼花缭乱,我是这样的,有可能是我的能力不足,这次对接真的是让我大开眼界

控制台-讯飞开放平台

上面这个地址先拿到  APPID、APISecret、APIKey

点击“立即购买”,个人认证也好企业认证也罢,花钱购买也行,先让这里有点数可用

点击这里的文档,去查看接口文档

不用看demo 了 根本没有php 的

第一个困住我的点是签名,我直接放代码了

    $query = [
        'header'=>['app_id'=>"自己的appid"],
        "parameter"=>[
            "chat"=>["domain"=>"general", "width"=>换成你自己宽度, "height"=>换成你自己的高度]
        ],
        "payload"=>[
            "message"=>["text"=> [["role"=>"user", "content"=>"用户输入的内容"]]]
        ]
    ];
    // 获取当前时间戳并格式化为RFC1123  时间不用加8,获取的时间是啥就是啥
    $rfc1123_date = gmdate('D, d M Y H:i:s \G\M\T');
    //dd($rfc1123_date);
    $tmp = "host: " . "spark-api.cn-huabei-1.xf-yun.com" . "\n";
    $tmp.= "date: " . $rfc1123_date . "\n";
    $tmp.= "POST " . "/v2.1/tti" . " HTTP/1.1";
    $hash_hmac = hash_hmac('sha256',$tmp,"你自己的APISecret",true);
    $signature = base64_encode($hash_hmac);
    $authorization =base64_encode('api_key="你自己的appid", algorithm="hmac-sha256", headers="host date request-line", signature="'.$signature.'"');
    $apiUrl = 'http://spark-api.cn-huabei-1.xf-yun.com/v2.1/tti?authorization='.$authorization.'&date='.$rfc1123_date.'&host=spark-api.cn-huabei-1.xf-yun.com';

    $apiUrl =str_replace(" ",'%20',$apiUrl);//这里如果不转换,请求永远是失败的
    $ch = curl_init();//初始化curl
    curl_setopt($ch, CURLOPT_URL,$apiUrl);//抓取指定网页
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
    curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($query));
    curl_setopt($ch,CURLOPT_HTTPHEADER,array('Content-Type: application/json'));// 文本提交方式,必须声明请求头
    $data = curl_exec($ch);//运行curl;
    return json_decode($data,true);

注意

1.你自己签名写完后 肯定会测试 (就是我代码 的变量 $apiUrl 出来的结果),这个url 请求是 POST 不要搞成 get.

2.with 和 height 必须是 int 用字符串是会报错的

3.获取的 采用RFC1123格式 时间 是不用 变的,获取到什么就是什么,不要加 8小时
4.请求的时候 $apiUrl 是需要 替换一下%20。

下面是我感觉文档的问题,写了2天才 搞通这么一个接口:

1.签名文档跳转到同一鉴权,但是内容一样

2.不知道接口到底是post 还是get 请求

3.用的时间是 北京时间 还是 utc 时间
4.我第一次见参数需要换行的 ,我可能孤陋寡闻了

经过我的反应,他们已经改了一部分,但是我之前对的 智能ppt 生成 和图片生成的鉴权竟然不一样。

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值