class WechatPublic::Api
Constants
- API_BASE
- FILE_BASE
Attributes
access_token[R]
client[R]
Public Class Methods
new(appid, secret, token_file)
click to toggle source
# File lib/wechat/api.rb, line 10 def initialize appid, secret, token_file @client = WechatPublic::Client.new(API_BASE) @access_token = WechatPublic::AccessToken.new(@client, appid, secret, token_file) end
Public Instance Methods
custom_message_send(message)
click to toggle source
# File lib/wechat/api.rb, line 45 def custom_message_send message post "message/custom/send", message.to_json, content_type: :json end
media(media_id)
click to toggle source
# File lib/wechat/api.rb, line 37 def media media_id response = get "media/get", params:{media_id: media_id}, base: FILE_BASE, as: :file end
media_create(type, file)
click to toggle source
# File lib/wechat/api.rb, line 41 def media_create type, file post "media/upload", {upload:{media: file}}, params:{type: type}, base: FILE_BASE end
template_message_send(message)
click to toggle source
# File lib/wechat/api.rb, line 49 def template_message_send message post "message/template/send", message.to_json, content_type: :json end
user(openid)
click to toggle source
# File lib/wechat/api.rb, line 20 def user openid get("user/info", params:{openid: openid}) end
users(nextid = nil)
click to toggle source
# File lib/wechat/api.rb, line 15 def users nextid = nil params = {params: {next_openid: nextid}} if nextid.present? get('user/get', params||{}) end
Protected Instance Methods
get(path, headers={})
click to toggle source
# File lib/wechat/api.rb, line 54 def get path, headers={} with_access_token(headers[:params]){|params| client.get path, headers.merge(params: params)} end
post(path, payload, headers = {})
click to toggle source
# File lib/wechat/api.rb, line 58 def post path, payload, headers = {} with_access_token(headers[:params]){|params| client.post path, payload, headers.merge(params: params)} end
with_access_token(params={}) { |merge(access_token: token)| ... }
click to toggle source
# File lib/wechat/api.rb, line 62 def with_access_token params={}, tries=2 begin params ||= {} yield(params.merge(access_token: access_token.token)) rescue WechatPublic::AccessTokenExpiredError => ex access_token.refresh retry unless (tries -= 1).zero? end end