Perpustakaan pengembangan platform publik WeChat
Antarmuka yang didukung:
Fitur:
Tutorial video penggunaan: Pengembangan akun publik WeChat
Tambahkan baris ini ke Gemfile aplikasi Anda:
gem 'wechat-gate'
Dan kemudian jalankan:
$ bundle
Atau instal sendiri sebagai:
$ gem install wechat-gate
Sebelum mulai bekerja, Anda perlu melakukan konfigurasi berikut pada platform akun publik WeChat:
Buat file wechat.yml di direktori konfigurasi proyek Rails dan konfigurasikan informasi akun resmi Anda.
# 区分不同的环境
eggman:
development:
host: http://wechat-test1.eggman.tv
wechat_id: xxxxxxxxxx
app_id: xxxxxxxxxx
app_secret: xxxxxxxxxx
oauth2_redirect_uri: "http://wechat-test1.eggman.tv/wechat/users/callback"
push_url: "http://wechat-test1.eggman.tv/wechat/push"
push_token: xxxxxxxxxxxxxxxxxxxx
production:
host: https://eggman.tv
wechat_id: xxxxxxxxxx
app_id: xxxxxxxxxxxxxxxxxxxx
app_secret: xxxxxxxxxxxxxxxxxxxxxxxxxx
# 如果不需要多环境支持,也可以这样
app_name:
app_id: <%= ENV['WECHAT_APP_NAME_APP_ID'] %>
app_secret: <%= ENV['WECHAT_APP_NAME_APP_SECRET'] %>
oauth2_redirect_uri: <%= ENV['WECHAT_APP_NAME_OAUTH2_REDIRECT_URI'] %>
Kemudian tentukan nama akun resmi yang akan dibaca di ApplicationController:
self.wechat_gate_app_name = 'eggman'
Operasi API latar belakang (seperti akuisisi informasi pengguna WeChat, dll.).
Secara default, konfigurasi sudah diinisialisasi di controller, metodenya adalah wechat_gate_config , langsung saja gunakan.
wechat_gate_config . users # 获取用户列表
wechat_gate_config . user ( 'ONE_OPEN_ID' ) # 获取一个用户的详细信息
wechat_gate_config . access_token # 获取当前access_token
# OAuth 2
wechat_gate_config . oauth2_entrance_url ( scope : "snsapi_userinfo" , state : "CURENT_STATE" ) # 获取当前OAuth2授权入口URL
wechat_gate_config . oauth2_access_token ( "TOKEN" ) # 根据OAuth2返回的TOKEN获取access_token
wechat_gate_config . oauth2_user ( "ACCESS_TOKEN" , "ONE_OPEN_ID" ) # 获取一个用户的信息
wechat_gate_config . medias # 获取素材列表, 参数type: image | video | voice | news (图文)
wechat_gate_config . menu_get # 获取菜单
wechat_gate_config . menu_create ( MENU_HASH ) # 创建菜单
wechat_gate_config . generate_js_request_params ( REFERER_URL ) # 返回JS-SDK的验证参数,供前端JS-SDK使用
Tentu saja, Anda juga dapat menginisialisasi konfigurasi secara manual, atau bahkan menentukan jalur ke file konfigurasi:
config = WechatGate::Config.new('eggman', '/path/to/what/ever/you/want.yml')
Access_token dan tiket di JS_SDK memiliki batas waktu kedaluwarsa dan waktu penyegaran, yang telah dipertimbangkan di sini. Anda tidak perlu khawatir tentang hal itu. Jika Anda ingin melakukan penyegaran secara manual, Anda dapat melakukan ini:
config.refresh_access_token
config.refresh_jsapi_ticket
File konfigurasi mendukung erb
Untuk antarmuka dan dokumentasi lebih lanjut, silakan lihat langsung kode sumbernya, yang ditulis dengan sangat rinci.
def ticket
url = CGI . unescape ( params [ :url ] ) # 微信中用户访问的页面
@data = wechat_gate_config . generate_js_request_params ( url ) # 生成微信JS-SDK所需的jsapi_ticket,signature等等参数供前段js使用
render content_type : "application/javascript"
end
tiket.js.erb:
var wxServerConfig = <%= @data.to_json.html_safe %>;
<%= params[:callback] %>();
Kemudian masukkan kode berikut di halaman WeChat:
( function ( ) {
var ticket = document . createElement ( "script" ) ;
ticket . src = "http://localhost/api/wechat_ticket/ticket.js?url=" + encodeURIComponent ( window . location . href . split ( '#' ) [ 0 ] ) + "&callback=wxCallback" ;
var s = document . getElementsByTagName ( "script" ) [ 0 ] ;
s . parentNode . insertBefore ( ticket , s ) ;
} ) ( ) ;
Pertama atur file konfigurasi menu, config/wechat_menu.yml, yang mendukung erb. Untuk formatnya, silakan merujuk ke dokumen menu khusus WeChat:
button:
- type: view
name: 我的2
url: <%= @config.oauth2_entrance_url(scope: 'snsapi_userinfo', state: 'profile') %>
- type: view
name: 课程
sub_button:
- type: view
name: 免费课程
url: <%= @config.oauth2_entrance_url(scope: 'snsapi_userinfo', state: 'free') %>
- type: view
name: 付费课程
url: <%= @config.oauth2_entrance_url(scope: 'snsapi_userinfo', state: 'paid') %>
Variabel **@config** adalah contoh akun publik WeChat saat ini. Mohon jangan memodifikasinya dan menggunakannya secara langsung.
Kemudian jalankan tugas rake:
$rails wechat_gate:create_menu APP_NAME=eggman CONFIG=/path/to/wechat.yml MENU=/path/to/wechat_menu.yml
Diantaranya, CONFIG default ke config/wechat.yml, MENU default ke config/wechat_menu.yml, dan APP_NAME harus ditentukan.
Tambahkan tes