使用Medium API创建文章遇问题:代码无响应求助
解决Medium API创建文章无响应的问题
你的代码核心问题是POST数据格式不匹配:你设置了Content-Type: application/json,但直接将PHP数组传给CURLOPT_POSTFIELDS,curl会自动把数组编码为multipart/form-data格式,和API要求的JSON格式冲突,导致请求无法被正确解析。
修正后的代码
$token = '2baemytoken6234324'; $post = [ 'title' => 'teseee', 'contentFormat' => 'html', 'content' => 'eeee', // 可选:添加发布状态,比如设为"draft"或"public" // 'publishStatus' => 'draft' ]; $ch = curl_init('https://api.medium.com/v1/users/132434fafasfasf3434/posts'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, 1); // 关键:将数组转为JSON字符串 curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post)); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Accept: application/json', 'Accept-Charset: utf-8', 'Authorization: Bearer ' . $token )); $data = curl_exec($ch); // 添加错误检测,方便排查问题 if(curl_errno($ch)) { echo 'Curl错误:' . curl_error($ch); } $info = curl_getinfo($ch); curl_close($ch); // 打印响应和状态码,查看结果 var_dump($data); var_dump($info['http_code']);
额外排查要点
- 确认用户ID正确:用户ID需要通过Medium API的
/v1/me接口获取,不能随便填写字符串 - 检查token权限:确保你的Bearer Token拥有创建文章的权限(申请token时需包含
publish_posts权限) - 查看HTTP状态码:通过
$info['http_code']可以获取响应状态码,比如401代表权限错误,404代表用户ID不存在
内容的提问来源于stack exchange,提问作者cpcdev
相关产品推荐
相关产品推荐

