理想情况下,我想在我邀请用户时将主组设置为我正在邀请加入的组,但我没有看到这样做的方法。有没有办法通过 API 设置用户的主组?
谢谢
理想情况下,我想在我邀请用户时将主组设置为我正在邀请加入的组,但我没有看到这样做的方法。有没有办法通过 API 设置用户的主组?
谢谢
我认为您可以通过 updateUser 操作来更新用户设置:
感谢您的提示——我尝试使用了它——我更新了 primary_group_name、primary_group_id,甚至还更新了组数组条目 ['primary_group'] = true——当我调用 update_user 时,我得到了一个 200 回复——使用了 gem,但还没有成功。我明天会仔细看看,看看是否有任何迹象表明出了什么问题。但我没有发现任何明显的问题。
这是我运行并从服务器获得 200 代码的代码:
client = DiscourseApi::Client.new("https://myforumurl.example.com")
client.api_key = '用于测试此功能的具有全局权限的 api 密钥'
client.api_username = '我的管理员用户名——我认为这无关紧要'
user = client.user('joepowell')
user['primary_group_name'] = 'dojo'
user['primary_group_id'] = 42
# 这是组数组中的组 42
user['groups'][2]['primary_group'] = true
client.update_user('joepowell', user)
请参阅逆向工程 Discourse API。这是了解 API 最可靠的方法,而且它始终是最新的。
太好了,谢谢你 :)。我明天早上做完之后会在这里回复 ![]()
我能够使用以下 Ruby 代码来更新主组 ID。它似乎尚未通过 gem 支持(我在代码中搜索了对 primary_group_id 的引用,但没有发现任何看起来可以这样工作的)。
require 'curb'
http = Curl.put('https://yourforum.com/admin/users/###user_id###/primary_group?primary_group_id=###group_id###') do | http |
http.headers['Api-Key'] = 'your-api-key';
http.headers['Api-Username'] = 'your-api-username';
http.headers['Content-Type'] = 'application/x-www-form-urlencoded'
end
我认为使用这些方法向 gem 不支持的路径发出请求是可以的:
所以你可以这样做:
response = client.put("admin/users/4/primary_group", primary_group_id: 43)
啊,太好了,谢谢 – 我想我可能会在这里更新代码后提交一个拉取请求:
但我现在正忙于让事情运行起来,所以还需要一段时间才能着手修改 Discourse 代码本身。我真的很喜欢 Discourse – 曾有人推荐我试用 Flarum,但说实话,根本无法与之相比,对于任何想要做一些不寻常的事情的人来说,Discourse 简直是另一个档次的。
谢谢
无法通过 API 更改主组? ![]()
如果你能通过用户体验(UX)进行更改,那么你也可以通过 API 进行更改。请参阅 逆向工程 Discourse API
哦,但如果你指的是通过 Gem,那我不知道。抱歉。
感谢您的回复 @pfaffman
我尝试了反向代理,但没有成功,我收到了 404 未找到错误 ![]()
/admin/users/barto_95/primary_group.json:
{
"errors": [
"L'URL ou la ressource demandée n'a pas été retrouvée."
],
"error_type": "not_found"
}
并且使用
/admin/users/2/primary_group.json: (2 = 用户 barto_95 的 ID)
{
"errors": [
"L'accès à la ressource demandée n'est pas autorisé."
],
"error_type": "invalid_access"
}
如果我在浏览器中查看带有 URL /admin/users/2/primary_group.json 的页面,我可以看到 json
用于测试 API 的请求:
curl --request PUT \
--url 'https://xxxxxr/admin/users/2/primary_group.json?=' \
--header 'Api-Key: a7bb1199xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdecbc7b41658' \
--header 'Apu-Username: Equipe_HACF' \
--header 'Content-Type: application/json' \
--data '{
"primary_group_id": "67"
}'
感谢您的帮助
该用户是管理员吗?我最好的猜测是权限问题。以下一项或多项可能出错:用户错误、密钥错误、密钥权限错误。
是的,问题在于我使用的用户权限
谢谢 ![]()
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.