顶 使用Rails plugin weixin_rails_middleware 快速搭建微信营销平台

weixin_rails_middleware,是专门为Rails项目开发微信第三方营销平台的gem,此gem已经在公司内部使用,

Github链接: https://github.com/lanrion/weixin_rails_middleware

Github example: https://github.com/lanrion/weixin_rails_middleware_example

使用方法:

gem 'weixin_rails_middleware'

bundle install

rails generate weixin_rails_middleware:install


配置 config/initializers/weixin_rails_middleware.rb

如果你只是固定的一个token值,那么只需要配置 config.token_string="你的token值"

生成的链接 http://example.com/weixin/你的token值

如果你像微盟那样,有很多用户添加自己公众账号,那个配置 

config.token_model="你保存公众账号的Model名称"

config.token_column="保存token的字段", 默认为"weixin_token"

生成的链接 http://example.com/weixin/生成的token值


  • 自动验证微信请求。

  • 无需拼接XML格式,只需要使用 WeixinMessageHelper 辅助方法,即可快速回复。 使用方法: render xml: reply_text_message("Your Message: #{current_message.Content}")

  • 支持自定义token,适合一个用户使用。

  • 支持多用户token: 适合多用户注册网站,每个用户有不同的token,通过 weixin_rails_middleware.rb 配置好存储token的Model与字段名,即可。

  • 文本回复: reply_text_message(content)

  • 音乐回复: reply_music_message(music)generate_music(title, desc, music_url, hq_music_url)

  • 图文回复: reply_news_message(articles)generate_article(title, desc, pic_url, link_url)

  • 视频回复: replay_video_message(video)

  • 语音回复: reply_voice_message(voice)

  • 图片回复: reply_imgage_message(image)

  • 地理位置回复: 自定义需求。

  更多请直接访问

Github链接: https://github.com/lanrion/weixin_rails_middleware




转自:http://my.oschina.net/u/200705/blog/201321
2019-03-02 00:07

知识点

相关教程

更多

Rails4 已经移出了params可以解析xml的功能,拿rails4做微信API的童鞋们注意了

拜读了用 Rails 搭建微信公众平台 API之后发现,params[:xml]这个办法在Rails 4里面已经被办掉了,于是就看了一下Rails 4的新特性发现XML Parameter parsing has been sent to a plugin. 于是就去找这个plugin了,在Github上,地址是https://github.com/rails/actionpack-xml_par

Rails 风格指导

感谢译者。 本页用于介绍 Ruby 社区首推的Rails代码编写风格,翻译来自:https://github.com/JuanitoFatas/rails-style-guide 序幕    风格是从伟大事物中分离出的美好事物。 -- Bozhidar Batsov   这份指南目的于演示一整套 Rails 3 开发的风格惯例及最佳实践。这是一份与由现存社群所驱动的Ruby 编码风格指南互补的指南

用 Rails 搭建微信公众平台 API

最近微信很火,春节在家抽空研究了公众平台的 API ,发现挺有意思的,写篇小文,简单记录一下 微信 API 简介  先来看看 API 的工作流程和机制 微信公众平台的账户可以开启“开发模式”(在“高级功能”中),开启之后,用户发送微信到你的账户时,将有如下流程 用户向公众平台账号发送微信后,微信服务器会将一段 XML 以 HTTP POST 请求的方式发送给你的 API 服务器 API 服务器经过

rails 单元测试

rails 如何保证每次单元测试都清理上一个测试的数据。

Rails常用插件

测试驱动   rspec-rails:BDD测试框架      初始化:rails generate rspec:install capybara:模拟浏览器器行为 factory_girl_rails:生成数据 database_cleaner:清除数据库数据 simplecov:覆盖率测试 faker:生成假数据 launchy:在浏览器中打开测试用例 guard-rspec:监视文件改变,自

Rails中的路由功能是如何对应的?

我才开始接触ROR,我是参照agile web development with rails这本书学习,按照上面的例子走,但是我发现我请求的地址似乎和config/routes.rb里面设定并不一样,比如说routes中是这样设置的:  map.connect ':controller/:action/:id' 可是我在浏览器中编辑的时候显示的是:http://localhost:3000/pro

rails model的一点疑惑。。。。。

在rails中生成的model里面定义的属性都直接对应数据库字段,如何定义不需要对应数据库的属性呢?  就像java里的bean一样。

配置sunspot tomcat结合sunspot_rails

1,sudo apt-get install openjdk-6-jdk 2,sudo apt-get install solr-tomcat 3, 在你的项目中加入sunspot支持(gem 'sunspot_rails'...)然后运行 rails g sunspot_rails:install 4,运行rake sunspot:solr:start 这样会在你的项目目录下面生成一个solr文

rails save问题数据库表主键必须是id吗?

我现在做的RAILS工程表的主键不是id,更新时怎么处理? 就是update的时候,rails的是先用find方法查找更新的数据,然后修改查询出的数据相应列,最后执行SAVE方法就OK了。执行后报这个错误  Mysql::Error: Unknown column 'M_ORGANIZATION.id' in 'where clause': SELECT * FROM `M_ORGANIZATIO

Rails设置环境变量

目前接触的环境变量分为2种,这里以sunspot中设置solr url为例 1. ENV['SOLR_URL'] 在Bash中就是系统环境变量,可使用    export SOLR_URL=http://localhost:8983/solr 进行设置。在ruby里通过ENV['SOLR_URL']可访问相应的系统变量。 在Heroku中可使用    heroku config:add SOLR_

如何在rails中使用支付宝

谁能给详细说一下。  有没有什么开源项目已经实现这块功能,或是有现在的代码可以参考?

Hadoop开发环境搭建及配置Hadoop Eclipse Plugin

1. 准备软件 RHEL6.1,jdk-6u30-linux-i586-rpm.bin, eclipse-jee-indigo-SR1-linux-gtk.tar.gz, Hadoop-0.20.203.0rc1.tar.gz  用户: FDC1(192.168.1.108) 对应 NameNode、SecondNameNode、JobTracker  FDC2(192.168.1.109) 对应

顶 微信开发总结分享

微信开发总结分享  第1章. 微信公众号介绍  1.1. 介绍   微信公众号是开发者或商家在微信公众平台上申请的应用账号,该帐号与QQ账号互通,通过公众号,商家可在微信平台上实现和特定群体的文字、图片、语音、视频的全方位沟通、互动 。   第2章. 微信公众号注册   2.1. 介绍  注册地址:https://mp.weixin.qq.com, 打开地址    输入相关信息并注册即可。如下:

顶 微信营销

微信,是腾讯旗下的一款语音产品,当前比较火爆的手机通信软件,支持发送语音短信、视频、图片和文字,可以群聊。相信喜欢体验移动APP用户手机里都会有这么一款应用,而作为深度体验用户的笔者也使用将近一年了。 微信营销是网络经济时代企业营销模式的一种创新,是伴随着微信的火热而兴起的一种网络营销方式。微信不存在距离的限制,用户注册微信后,可与周围同样注册的“朋友”形成一种联系,用户订阅自己所需的信息,商家通

顶 微信营销

现在,不管在哪里,地铁或者是公交,都能看见人们用他们的手机刷微信,微信是一种新的沟通方式,将会代替短信成为人们日常生活中的通讯工具。微信现在已经突破了四亿用户,预计在2013年底将会达到五亿用户,这么一个庞大的用户群体让微信营销成为可行。 微信群体是一个庞大的群体,用户主要以年轻人,白领,学生和高端人士为主。将微信作为营销手段,具有很强的可行性。 1.常见的做法当然也是比较实用的方法是二维码!通过

最新教程

更多

java线程状态详解(6种)

java线程类为:java.lang.Thread,其实现java.lang.Runnable接口。 线程在运行过程中有6种状态,分别如下: NEW:初始状态,线程被构建,但是还没有调用start()方法 RUNNABLE:运行状态,Java线程将操作系统中的就绪和运行两种状态统称为“运行状态” BLOCK:阻塞状态,表示线程阻塞

redis从库只读设置-redis集群管理

默认情况下redis数据库充当slave角色时是只读的不能进行写操作,如果写入,会提示以下错误:READONLY You can't write against a read only slave.  127.0.0.1:6382> set k3 111  (error) READONLY You can't write against a read only slave. 如果你要开启从库

Netty环境配置

netty是一个java事件驱动的网络通信框架,也就是一个jar包,只要在项目里引用即可。

Netty基于流的传输处理

​在TCP/IP的基于流的传输中,接收的数据被存储到套接字接收缓冲器中。不幸的是,基于流的传输的缓冲器不是分组的队列,而是字节的队列。 这意味着,即使将两个消息作为两个独立的数据包发送,操作系统也不会将它们视为两个消息,而只是一组字节(有点悲剧)。 因此,不能保证读的是您在远程定入的行数据

Netty入门实例-使用POJO代替ByteBuf

使用TIME协议的客户端和服务器示例,让它们使用POJO来代替原来的ByteBuf。

Netty入门实例-时间服务器

Netty中服务器和客户端之间最大的和唯一的区别是使用了不同的Bootstrap和Channel实现

Netty入门实例-编写服务器端程序

channelRead()处理程序方法实现如下

Netty开发环境配置

最新版本的Netty 4.x和JDK 1.6及更高版本

电商平台数据库设计

电商平台数据库表设计:商品分类表、商品信息表、品牌表、商品属性表、商品属性扩展表、规格表、规格扩展表

HttpClient 上传文件

我们使用MultipartEntityBuilder创建一个HttpEntity。 当创建构建器时,添加一个二进制体 - 包含将要上传的文件以及一个文本正文。 接下来,使用RequestBuilder创建一个HTTP请求,并分配先前创建的HttpEntity。

MongoDB常用命令

查看当前使用的数据库    > db    test  切换数据库   > use foobar    switched to db foobar  插入文档    > post={"title":"领悟书生","content":"这是一个分享教程的网站","date":new

快速了解MongoDB【基本概念与体系结构】

什么是MongoDB MongoDB is a general purpose, document-based, distributed database built for modern application developers and for the cloud era. MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

windows系统安装MongoDB

安装 下载MongoDB的安装包:mongodb-win32-x86_64-2008plus-ssl-3.2.10-signed.msi,按照提示步骤安装即可。 安装完成后,软件会安装在C:\Program Files\MongoDB 目录中 我们要启动的服务程序就是C:\Program Files\MongoDB\Server\3.2\bin目录下的mongod.exe,为了方便我们每次启动,我

Spring boot整合MyBatis-Plus 之二:增删改查

基于上一篇springboot整合MyBatis-Plus之后,实现简单的增删改查 创建实体类 添加表注解TableName和主键注解TableId import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baom

分布式ID生成器【snowflake雪花算法】

基于snowflake雪花算法分布式ID生成器 snowflake雪花算法分布式ID生成器几大特点: 41bit的时间戳可以支持该算法使用到2082年 10bit的工作机器id可以支持1024台机器 序列号支持1毫秒产生4096个自增序列id 整体上按照时间自增排序 整个分布式系统内不会产生ID碰撞 每秒能够产生26万ID左右 Twitter的 Snowflake分布式ID生成器的JAVA实现方案