逝水年华 发表于 2023-3-27 07:51:59

Discuz! 3.5 的 UCenter 接口返回 Access denied for operation changed

3.4 的接口可以正常返回,3.5 同样的代码就出现了 Access denied for operation changed。


另外有没有比较清晰的 UCenter 的接口文档,我是 Java 开发者,用的是别人比较老的调用接口的代码,很不好调试。

感谢知道的朋友们的回复!

TyCoding 发表于 2023-3-27 07:52:33

补充:我找到了接口文档的地址:https://help.v2my.com/UCenter/api/api_index.htm。

但是我是 Java 开发者,我想知道调用什么接口,什么请求方式,传递哪些参数,哪些参数应该怎么编码,PHP 的示例代码看不懂。哪里有比较清晰的文档,告诉我调用的规则。谢谢知道的朋友!

TyCoding 发表于 2023-3-27 07:53:23

如果你手头已经有能用的老代码那就好办了,否则光是接口参数的加密就够你头疼一阵子的。
这接口大概是这么个编码流程:
1. 先对参数做url编码,大致就是变成a=b&c=d这种格式
2. (出于安全考虑新增的,x3.4可能没有)参数后面追加&m=module&a=action&appid=UC_APPID,比方说登录环节,module就是user action就是login
3. 后面再追加&agent=UA的MD5,&time=时间戳
4. 用Discuz自家的authcode加密算法(通常是一个函数实现,如果你原本有代码这里应该有这个东西)对上述字符串加密,密钥为UC_KEY,加密完了用urlencode编码
5. 将加密以后的东西嵌入这串参数里面 m=module&a=action&inajax=2&release=UC_CLIENT_RELEASE&input=上一步的内容&appid=UC_APPID
6. 上述参数即为最终POST到接口的东西,记得Content-Type: application/x-www-form-urlencoded。因为已经encode过了所以直接发就行了。

你对照着这套逻辑看看你已有的原版代码,看懂以后把缺少的部分补上应该就能用了。
页: [1]
查看完整版本: Discuz! 3.5 的 UCenter 接口返回 Access denied for operation changed

创宇盾启航版免费网站防御网站加速服务