新手问题 微信群发接口报错: 无效的 openid

killernova · 2015年12月03日 · 最后由 dc2000 回复于 2015年12月03日 · 5353 次阅读

事情是这样的:

我用微信微信群发接口 (预览接口,就是那个测试接口) 做群发测试,发现总是返回:{"errcode":40003,"errmsg":"invalid openid hint: [on4bJa0196ge10]"}

因为是测试,所以我就随便弄了 2 个 openid,但这 2 个绝对是正确的,因为一直在用,从数据库中 copy 出来的。
代码如下:
text_hash = {
      :touser => params_hash["openids"],
      :msgtype => "text",
      :text => {:content => params_hash["content"]}
    }
    text_json = text_hash.to_json
    res_data_json = RestClient.post group_post_url, text_json

其中,当 params_hash["open ids"] = ["XXXXXXXXXXX"] 或者 params_hash["open ids"] = ["XXXXXXXXXXX", "XXXXXXXXX"]时,均返回以上错误, 但当 params_hash["open ids"] = "XXXXXXXXXXX" 时则一切正常。

所以现在怀疑是包含数组的 hash 转化为 json 格式时,该格式不被腾讯认可。求各位支招,谢谢!

试试把

params_hash["open ids"] = ["XXXXXXXXXXX"]

改成

params_hash["open ids"] = {"XXXXXXXXXXX", "XXXXXXXXX"}

@dc2000 呃。。。这是在 controller 中,直接报错的。

不是,不好意思,是我自己眼瞎。。。测试接口不支持群发。。。。。

:touser => params_hash["openids"],

改成

:touser => "#{params_hash["openids"]}",
需要 登录 后方可回复, 如果你还没有账号请 注册新账号