Home  >  Q&A  >  body text

php - 微信上传图文消息素材报错40007 不合法的媒体文件id?

    function uploadNews(){
        //1.获取全局access_token
        $access_token = $this->getWxAccessToken();    
        $url = "https://api.weixin.qq.com/cgi-bin/media/uploadnews?access_token=".$access_token;
        //2.组装数据    
        $thumb_media_id=$this->addMaterial();
        dump($thumb_media_id);
        $content_img=$this->addMaterialUrl();
        $array = array(
                "articles" => array(                                /*若新增的是多图文素材,则此处应还有几段articles结构  */
                        array(
                                "thumb_media_id"      => $thumb_media_id,        //图文消息缩略图的media_id,可以在基础支持-上传多媒体文件接口中获得
                                "author"              => urlencode('作者'),            //作者
                                "title"               => urlencode('这是测试的标题——1'),
                                "content_source_url" => urlencode("http://www.地址"),            //图文消息的原文地址,即点击“阅读原文”后的URL                                                        
                                "content"             => urlencode("<h1>这是一个测试文章——1</h1><br /><img src='{$content_img}' /><br /><p>测试下图文素材的效果——1</p><br /><p>测试下图文素材的效果——1</p>"),            //图文消息的具体内容,支持HTML标签,必须少于2万字符,小于1M,且此处会去除JS
                                "digest"             => urlencode('这是测试的摘要'),            //图文消息的摘要,仅有单图文消息才有摘要,多图文此处为空
                                "show_cover_pic"      => 1,            //是否显示封面,0为false,即不显示,1为true,即显示
                         ),//第一个图文
                         array(
                                 "thumb_media_id"      => $thumb_media_id,        //图文消息的封面图片素材id(必须是永久mediaID)
                                 "author"              => urlencode('作者'),            //作者
                                 "title"               => urlencode('这是一个测试的标题——2'),
                                 "content_source_url" => urlencode("http://地址"),            //图文消息的原文地址,即点击“阅读原文”后的URL
                                 "content"             => urlencode("<h1>这是一个测试文章——2</h1><br /><img src='{$content_img}' /><br /><p>测试下图文素材的效果——2</p><br /><p>测试下图文素材的效果——2</p>"),            //图文消息的具体内容,支持HTML标签,必须少于2万字符,小于1M,且此处会去除JS
                                 "digest"             => urlencode('这是测试的摘要'),            //图文消息的摘要,仅有单图文消息才有摘要,多图文此处为空
                                 "show_cover_pic"      => 1,            //是否显示封面,0为false,即不显示,1为true,即显示
                         ),//第二个图文
                ),
        );
        dump($array);
        $postJson = urldecode( json_encode( $array ) );
        dump($postJson);
        $res=$this->https_request( $url ,'post', 'json', $postJson);
        dump($res);
        return $res['media_id'];
    }

然后是4个打印值
1.图文消息缩略图片的id——已经获取到
2.数组
3.转json后的数据
4.结果

结果报错说不合法的媒体文件id?前面图片的id已经获取到了啊。
刚刚又试了下另外一个请求,是新增永久图文素材,那个就成功了,为什么上传图文素材这个就有问题呢?图片素材id、json数据打印都看不出问题,唯独最后返回的时候确保错媒体id无效。。。

中...]

天蓬老师天蓬老师2772 days ago1465

reply all(0)I'll reply

No reply
  • Cancelreply