Closed just4fun closed 8 years ago
@fangjue 感谢,刚试了一下,还是得到同样的错误。
我用js模拟了文档里php的那个方法:
// http://phpjs.org/functions/time/
function time() {
return Math.floor(new Date().getTime() / 1000);
}
// https://github.com/UESTC-BBS/API-Docs/wiki/Mobcent-API#apphash
export function getAppHashValue() {
let timeStr = time().toString();
let encryptedTimeStr = md5(timeStr.substr(0, 5) + '.appbyme_key');
return encryptedTimeStr.substr(8, 8);
}
然后添加了apphash/accessToken/accessSecret三个参数,还是报错。
ps: md5是node package的MD5。
apphash 是多少?目前为 "e7e744b6"。
let encryptedTimeStr = md5(timeStr.substr(0, 5) + '.appbyme_key');
这一行不对,'appbyme_key'
多了一个点 .
。
@fangjue 去掉点了,response像是正常了。
但网站上找不到我回复的评论,像是没发出去。 有什么字段是必填吗?我的payload如一楼所示。
POST 正文应该是 act=reply&json={...}
,而不是把 act 放在 JSON 里面。
@fangjue 那doc感觉有点confuse啊。
我改成你说的这样了,最后得到抱歉,指定的主题不存在或已被删除或正在被审核
,啊啊啊啊啊啊啊有点hold不住了。
具体请求是怎样的?
fetch('http://bbs.uestc.edu.cn/mobcent/app/web/index.php?r=forum/topicadmin&apphash=...&accessToken=...&accessSecret=...', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/x-www-form-urlencoded'
},
body: `act=reply&json=${JSON.stringify(payload)}`
}).then(...)
body最后是act=reply&json={"fid":25,"tid":1579507,"isAnonymous":0,"isOnlyAuthor":0,"isQuote":0,"replyId":null,"title":null,"content":[{"type":0,"infor":"好可怕"}]}
payload如下:
{
fid: 25,
tid: 1579507,
isAnonymous: 0,
isOnlyAuthor: 0,
isQuote: 0,
replyId: null,
title: null,
content: [
{
type: 0,
infor: '好可怕'
}
]
}
payload
的格式应该是:
{
body: {
json: {
...
}
}
}
抱歉,您的帖子小于 6 个字符的限制
...content输入再长也返回这个...
"content": "又是一个 JSON 字符串,格式见下面。",
content
的值此处还需要一次 JSON.stringify
。
我去,终于成功了,感谢。
文档我可以编辑吗?有些地方第一次看确实有些不清楚。
欢迎编辑。
apphash那一块二确实有点confused啊....添加了java版本。
正在研究如何回复帖子,使用js的fetch方法如下:
payload结构如下:
但是response一直返回带有
您当前的访问请求当中含有非法字符,已经被系统拒绝
、已经将此出错信息详细记录, 由此给您带来的访问不便我们深感歉意
的错误页面。按照文档最前面说的把
Content-Type
改成application/x-www-form-urlencoded;charset=UTF-8
也是一样的效果;url或者headers里加上token跟secret也一样。