Eric-Guo / wechat

API, command and message handling for WeChat in Rails

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

请问使用wechat_responder没有响应是怎么回事?

junefromswjtu opened this issue · comments

环境ruby2.7,rails6.1

按照文档的单应用模式进行创建和配置

能够接收到请求和对应到的内容,但没有回复内容,微信端提示公众号提供的服务出现故障,不知道各位有否遇到,求教求教

class WechatsController < ApplicationController

  wechat_responder

  on :text do |request, content|
    request.reply.text "echo: #{content}" # Just echo
  end
end

wechat是0.15.1版本

无法复现,不过可以从 ActionController::Base 继承 controller 看看,有时候 ApplicationController 会无意中引入登录功能,导致微信服务器无法呼叫。

class WechatsController < ActionController::Base
end

是的,改过后也还是不行,之前ApplicationController是空白的,我也尝试了看是否是微信与我这边开发环境中的网络或者其他环境的问题,用以前使用过的一个接口是可以正常反馈,所以感觉到很奇怪,可能是我用法哪个环节不对。但反复看了文档,也没发现哪个地方有遗漏,不知道谁有没有一个简单的rails的demo?我照着可以用的应用去逐个排查。

这是请求的日志
图片

你要不试试在微信后台设置成XML格式?json 格式是 0.15.0 #306 加的,如果你用的json可能有 bug.

微信后台没有看到哪个地方可以设置XML格式的,可否赐教下?
然后我换成0.14.0的版本,症状和0.15.1一样 @Eric-Guo

那就不是这个问题了。

重新按照文档顺序挨着弄了一遍,好像还是那个问题。
除了修改了配置外,其他都是默认生成的代码,感觉好像还是环境哪个地方没弄对样

rails generate wechat:install -s
      create  config/wechat.yml
       route  resource :wechat, only: [:show, :create]
      create  app/controllers/wechats_controller.rb

rails generate wechat:session -s
      create  db/migrate/20220517130031_create_wechat_sessions.rb
      create  app/models/wechat_session.rb

rails db:migrate
== 20220517130031 CreateWechatSessions: migrating =============================
-- create_table(:wechat_sessions)
   -> 0.0161s
-- add_index(:wechat_sessions, :openid, {:unique=>true})
   -> 0.0139s
== 20220517130031 CreateWechatSessions: migrated (0.0330s) ====================

rails generate wechat:config -s
      create  db/migrate/20220517130255_create_wechat_configs.rb
      create  app/models/wechat_config.rb

rails db:migrate
== 20220517130255 CreateWechatConfigs: migrating ==============================
-- create_table(:wechat_configs)
   -> 0.0116s
-- add_index(:wechat_configs, [:environment, :account], {:unique=>true, :length=>{:environment=>20, :account=>100}})
   -> 0.0139s
== 20220517130255 CreateWechatConfigs: migrated (0.0286s) =====================

其实就跑rails generate wechat:install -s就可以安装了,要么你先做这一步,跑通看看。

仍然不行

找到原因了,粗心了,这点没注意到

Or if using public account, only need above two line

appid: "my_appid"

secret: "my_secret"