注册

环信Rest无法group加用户

Hello,创建了一个群组,


$easemob_client.create_group($easemob_client.token,:groupname=>"g1",:desc=>"g1 group",:owner=>"1",:group_private_or_not=>true)
=> {:action=>"post", :application=>"f11e2c10-3407-11e5-9122-9bff0a3eb836", :uri=>"https://a1.easemob.com/zmkh/mc-development", :entities=>, :data=>{:groupid=>"89088536703140256"}, :timestamp=>1438307341352, :duration=>26, :organization=>"zmkh", :applicationName=>"mc-development", :http_code=>"200"}


但是加member时候500,


$client.add_member($client.token,"89088536703140256","472")
=> {:error=>"web_application", :timestamp=>1438307413479, :duration=>0, :exception=>"javax.ws.rs.WebApplicationException", :http_code=>"500"}


而且也不抱是怎么回事。
Room也是类似。
另外如何添加用户到群组呢?(我用的是web im demo,貌似没有类似功能?)
已邀请:

lizg - ……

错误的请求, 给一个未提供的API发送了请求, 是你的url写错了。还有webim demo 是调用rest接口实现群组功能
我用的是easemob-ruby这个gem
# 群组加人[批量]
def add_members(token, group_id, usernames = [])
url = "#{@base_url}/chatgroups/#{group_id}/users"
header = token_header token
params = { usernames: usernames }
uri, req = @http_client.post_request url, params, header
http_submit uri, req
end

# 群组减人
def del_member(token, group_id, username)
url = "#{@base_url}/chatgroups/#{group_id}/users/#{username}"
header = token_header token
uri, req = @http_client.del_request url, nil, header
http_submit uri, req
end
url没错啊?
创建,获取群组信息等等都对的:
# 获取一个或者多个群组的详情
def groups_details(token, group_ids = [])
params = group_ids.join(',')
url = "#{@base_url}/chatgroups/#{params}"
header = token_header(token)
uri, req = @http_client.get_request(url, nil, header)
http_submit(uri, req)
end

# 创建一个群组
def create_group(token, group_params = {})
url = "#{@base_url}/chatgroups"
header = token_header(token)
group_private_or_not = group_params[:group_private_or_not] || false # 是否是公开群, 此属性为必须的,为false时为私有群
maxusers = group_params[:maxusers] || 200 # 群组成员最大数(包括群主), 值为数值类型,默认值200,此属性为可选的
approval = group_params[:approval] || false # 加入公开群是否需要批准, 默认值是false(加群不需要群主批准), 此属性为可选的,只作用于公开群
params = {
groupname: group_params[:groupname], # 群组名称, 此属性为必须的
desc: group_params[:desc], # 群组描述, 此属性为必须的
public: group_private_or_not,
maxusers: maxusers,
approval: approval,
owner: group_params[:owner] # 群组的管理员, 此属性为必须的
}
# 群组成员,此属性为可选的,但是如果加了此项,数组元素至少一个(注:群主jma1不需要写入到members里面)
params.merge!({ members: group_params[:members] }) if group_params[:members]
uri, req = @http_client.post_request(url, params, header)
http_submit(uri, req)
end

 
这边测试添加群成员没有问题,附件是测试用的代码,请换上你的appkey等数据后自行测试一下。对比查找下你代码的问题。
Hello,目前为止批量加人可以,单独加人不行,
很奇怪。
 
你的代码大致看了一下,有warning
Warning: Illegal string offset 'expires_in' in /Users/femto/Downloads/php/Easemob.class.php on line 383

Warning: Illegal string offset 'expires_in' in /Users/femto/Downloads/php/Easemob.class.php on line 383
string(391) "{
  "action" : "post",
  "application" : "a6450600-d6ba-11e4-9428-1b60f9a93b51",
  "uri" : "https://a1.easemob.com/dihon/loveofgod",
  "entities" : [ ],
  "data" : {
    "result" : true,
    "action" : "add_member",
    "user" : "zhangsan",
    "groupid" : "1428032285973"
  },
  "timestamp" : 1438312677628,
  "duration" : 28,
  "organization" : "dihon",
  "applicationName" : "loveofgod"
}"
 
目前为止批量加人口子可以,不管了。
对了,还要请教一下,我看有group,有room,
什么区别?
 

lizg - ……

1.group是群组,群组最大支持2000人,分四类:
  1,私有群1,只有创建者能邀请别人进群。
  2,私有群2,创建者和成员都能邀请别人进群。
  3,公开群1,可以随便进入。
  4,公开群2,需要群主审核才能入群。
2.room是聊天室,最大支持5000人,聊天室成员可以自己进出
  1,聊天室内仅有有owner和游客
  2,不支持客户端建立聊天室
  3,不支持客户端邀请
  4,不支持REST邀请 
请教
 1,私有群1,只有创建者能邀请别人进群。
  2,私有群2,创建者和成员都能邀请别人进群。
 这些在api上如何反应?没看到啊,就看到一个直接addGroupUser的api,
不需要填邀请端的人,另外受邀请的人需要同意么?貌似也没看到什么同意的api,
貌似直接同意了?
 
3,公开群1,可以随便进入。
  4,公开群2,需要群主审核才能入群。
同样,群主审核是怎么操作?是有api么,还是通过环信后台?
 
Room:
2,不支持客户端建立聊天室
  3,不支持客户端邀请
客户端是h5端还是native app端?
客户端邀请?自由进出假设有个/room/join,/room/leave之类的api,
但是邀请又张啥样呢?同group的问题,邀请的api,哪里填邀请成员id,
以及同意的回调等等。
Thanks.
公开群和私有群在创建时是有字段区分的,rest创群你可以看下:http://docs.easemob.com/doku.php?id=start:100serverintegration:60groupmgmt#群组操作 ,客户端创建可具体参看一下demo中的代码。demo中可以创建公开群和私有群,相关的邀请审核操作你测试体验一下就非常清楚了。 聊天室主要是通过服务端调rest来进行创建等操作,客户端(ios和安卓)可以获取到聊天室,可进入聊天,可以离开。 web的话暂没实现聊天室,但可以通过调rest来进行操作。聊天室相关操作可参见:http://docs.easemob.com/doku.php?id=start:100serverintegration:70chatroommgmt
不懂手机端编程。
但是看了一下demo,大致知道怎么回事了。
 
也就是说,这些区分可能在客户端的api里头有,目前Rest和js的api是没有的
(我们只会这个,所以目前先上web im,使用rest和js api)。
Rest和js的api读下来并没有能够传入这种参数。

lizg - ……

webim没有聊天室,创建群组也是调用rest接口实现

要回复问题请先登录注册