微信curl上传客服头像接口遇到的坑

    项目要做一个微信客服管理的功能,于是从上礼拜开始就着手开发,首先看微信公众平台开发者文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1451025056&token=&lang=zh_CN , 获取客服基本信息,添加客服帐号,设置客服信息,删除客服帐号,这些接口都调好,唯独上传客服头像出了问题。


 
 
调用示例(使用curl命令,用FORM表单方式上传一个多媒体文件):
curl -F media=@test.jpg "https://api.weixin.qq.com/customservice/kfaccount/uploadheadimg?access_token=ACCESS_TOKEN&kf_account=KFACCOUNT" 一直调试了好多天,都没有成功,一直是

返回"errcode":41005,"errmsg":"media data missing"

查了网上好多资料,后面试了很多才发现,原来跟php 版本是有关的(吐血)。

php5.5已经把通过@加文件路径上传文件的方式给放入到Deprecated中了。php5.6默认是不支持这种方式了,而是使用:'media' => new \CURLFile(realpath($media)) 这种方式。特殊处理:curl_setopt ( $ch, CURLOPT_SAFE_UPLOAD, false);

/**
     * 上传客服头像
     * @param string $account
     * @param string $media
     */
    public function uploadheadimg($account, $media)
    {
        $data = $this->getData('/customservice/kfaccount/uploadheadimg', [
            'access_token' => $this->getAccessToken()
        ], [
            'kf_account' => $account,
            'media' => new \CURLFile(realpath($media))
            ]
        );
    
        return $data;
    }


附上curl方法:

protected function curl($url, $data = null)
    {
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt( $curl, CURLOPT_SAFE_UPLOAD, FALSE);
        if (! empty($data)) {
            curl_setopt($curl, CURLOPT_POST, 1);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        }
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $output = curl_exec($curl);
        curl_close($curl);
        
        return $output;
    }

最后是接口上传成功了,但是查看客服列表,竟然客服头像图片没有显示,直接在公众号上传的就能直接显示,还在找原因当中。。。如有看到知道的烦请赐教,谢谢。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值