使用Google Apps Script结合Pastebin.com API发布内容遇报错求助
解决Pastebin API调用返回"Bad API request, invalid api_option"的问题
我帮你分析了下代码里的问题,你现在遇到的错误主要是API参数传递方式不符合要求,咱们一步步来修正:
问题根源
你的代码里有两个关键错误:
- 把
api_dev_key、api_option这些必填参数同时放在URL拼接和payload里,导致Pastebin API无法正确识别请求格式 payload没有按照API要求的键值对格式传递,而是直接传了纯文本内容
修正后的代码
function postPastebinPost() { const apiKey = '你的API密钥'; // 替换成你实际的Pastebin开发者密钥 const pasteContent = 'Hello World'; const payload = { 'api_dev_key': apiKey, 'api_option': 'paste', 'api_paste_code': pasteContent }; const options = { 'method': 'post', 'payload': payload, 'muteHttpExceptions': true // 开启后能查看完整错误响应,方便调试 }; const url = 'https://pastebin.com/api/api_post.php'; const response = UrlFetchApp.fetch(url, options); Logger.log(response.getContentText()); }
关键修改说明
- 参数统一放在payload里:Pastebin的POST请求要求所有API参数都通过表单数据传递,不需要拼在URL上
- payload用键值对格式:把
api_dev_key、api_option、api_paste_code这些必填参数组织成对象,UrlFetchApp会自动转换成符合要求的表单格式 - 添加
muteHttpExceptions:开启后如果请求出错,能拿到完整的错误详情,便于排查问题 - 移除URL中的参数拼接:避免重复传递参数导致API识别混乱
额外提醒
如果需要设置粘贴的语法格式、过期时间等额外属性,直接在payload对象里添加对应键即可,比如api_paste_format(设置代码格式)、api_paste_expire_date(设置过期时间)。
内容的提问来源于stack exchange,提问作者Mio Winter
相关产品推荐
相关产品推荐

