<commit_before>Wechat Rails
======================

[![Build Status](https://travis-ci.org/skinnyworm/omniauth-wechat-oauth2.svg)](https://travis-ci.org/skinnyworm/wechat-rails) [![Code Climate](https://codeclimate.com/github/skinnyworm/wechat-rails.png)](https://codeclimate.com/github/skinnyworm/wechat-rails) [![Code Coverage](https://codeclimate.com/github/skinnyworm/wechat-rails/coverage.png)](https://codeclimate.com/github/skinnyworm/wechat-rails) [![Gem Version](https://badge.fury.io/rb/wechat-rails.png)](http://badge.fury.io/rb/wechat-rails)


Wechat-rails 可以帮助开发者方便地在Rails环境中集成微信公众平台提供的所有服务，目前微信公众平台提供了以下几种类型的服务。

- ##### 微信公众平台基本API, 无需Web环境。
- ##### 消息处理机制, 需运行在Web环境中。
- ##### OAuth 2.0认证机制

Wechat-rails gem 包含了一个命令行程序可以调用各种无需web环境的API。同时它也提供了Rails Controller的responder DSL, 可以帮助开发者方便地在Rails应用中集成微信的消息处理机制。如果你的App还需要集成微信OAuth2.0, 你可以考虑[omniauth-wechat-oauth2](https://github.com/skinnyworm/omniauth-wechat-oauth2), 这个gem可以方便地和devise集成提供完整的用户认证.

在使用这个Gem前，你需要获得微信API的appid, secret, token。具体情况可以参见http://mp.weixin.qq.com

## 安装

Using `gem install` or add to your app's `Gemfile`:

```
gem install "wechat-rails"
```

```
gem "wechat-rails", git:"https://github.com/skinnyworm/wechat-rails"
```


## 配置

#### 命令行程序的配置

要使用命令行程序，你需要在你的home目录中创建一个`~/.wechat.yml`，包含以下内容。其中`access_token`是存放access_token的文件位置。

```
appid: "my_appid"
secret: "my_secret"
access_token: "/var/tmp/wechat_access_token"
```

#### Rails 全局配置
Rails环境中, 你可以在config中创建wechat.yml, 为每个rails environment创建不同的配置。

```
default: &default
  appid: "app_id"
  secret: "app_secret"
  token:  "app_token"
  access_token: "/var/tmp/wechat_access_token"

production: 
  appid: <%= ENV['WECHAT_APPID'] %>
  secret: <%= ENV['WECHAT_APP_SECRET'] %>
  token:   <%= ENV['WECHAT_TOKEN'] %>
  access_token:  <%= ENV['WECHAT_ACCESS_TOKEN'] %>

staging: 
  <<: *default

development: 
  <<: *default

test: 
  <<: *default
```<commit_msg>review readme and add configure item for enterprise account.<commit_after>Wechat Rails
======================

[![Build Status](https://travis-ci.org/skinnyworm/omniauth-wechat-oauth2.svg)](https://travis-ci.org/skinnyworm/wechat-rails) [![Code Climate](https://codeclimate.com/github/skinnyworm/wechat-rails.png)](https://codeclimate.com/github/skinnyworm/wechat-rails) [![Code Coverage](https://codeclimate.com/github/skinnyworm/wechat-rails/coverage.png)](https://codeclimate.com/github/skinnyworm/wechat-rails) [![Gem Version](https://badge.fury.io/rb/wechat-rails.png)](http://badge.fury.io/rb/wechat-rails)


Wechat-rails 可以帮助开发者方便地在Rails环境中集成微信[公众平台](https://mp.weixin.qq.com/)和[企业平台](https://qy.weixin.qq.com)提供的服务，目前微信公众平台提供了以下几种类型的服务。

- 微信公众平台基本API, 无需Web环境
- 消息处理机制, 需运行在Web环境中
- OAuth 2.0认证机制

Wechat-rails gem 包含了一个命令行程序可以调用各种无需web环境的API。同时它也提供了Rails Controller的responder DSL, 可以帮助开发者方便地在Rails应用中集成微信的消息处理机制。如果你的App还需要集成微信OAuth2.0, 你可以考虑[omniauth-wechat-oauth2](https://github.com/skinnyworm/omniauth-wechat-oauth2), 这个gem可以方便地和devise集成提供完整的用户认证.

在使用这个Gem前，你需要获得微信API的appid, secret, token。具体情况可以参见http://mp.weixin.qq.com

## 安装

Using `gem install` or add to your app's `Gemfile`:

```
gem install "wechat-rails"
```

```
gem "wechat-rails", git:"https://github.com/skinnyworm/wechat-rails"
```


## 配置

#### 命令行程序的配置

要使用命令行程序，你需要在你的home目录中创建一个`~/.wechat.yml`，包含以下内容。其中`access_token`是存放access_token的文件位置。

```
appid: "my_appid"
secret: "my_secret"
access_token: "/var/tmp/wechat_access_token"
```

Windows或者使用企业号，需要存放在`C:/Users/[user_name]/`下，配置如下：

```
corpid: "my_appid"
corpsecret: "my_secret"
access_token: "C:/Users/[user_name]/wechat_access_token"
```

#### Rails 全局配置
Rails环境中, 你可以在config中创建wechat.yml, 为每个rails environment创建不同的配置。

```
default: &default
  appid: "app_id"
  secret: "app_secret"
  token:  "app_token"
  access_token: "/var/tmp/wechat_access_token"

production: 
  appid: <%= ENV['WECHAT_APPID'] %>
  secret: <%= ENV['WECHAT_APP_SECRET'] %>
  token:   <%= ENV['WECHAT_TOKEN'] %>
  access_token:  <%= ENV['WECHAT_ACCESS_TOKEN'] %>

staging: 
  <<: *default

development: 
  <<: *default

test: 
  <<: *default
```
{'fraction_non_alphanumeric': 0.18130241736556488, 'fraction_numerical': 0.003453379378391712, 'mean_word_length': 6.126537785588752, 'pattern_counts': {'":': 0, '<': 23, '<?xml version=': 0, '>': 11, 'https://': 20, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6355593', 'n_tokens_mistral': 2068, 'n_tokens_neox': 2054, 'n_words': 185}