[原创] 判断用户是否关注

2016-01-14 1638

在实际应用中常常会用到需要判断用户是否关注了本账号的问题。可以根据用户的openid直接进行判断。方法很简单的。就是调用微信的获取用户信息接口http://mp.weixin.qq.com/wiki/1/8a5ce6257f1d3b2afb20f83e72b72ce9.html

  # 根据open_id判断用户是否已经关注账号
  def validate_is_subscribe_by_openid
    openid = "oxp57uPPCNa6D9lIdi--eWEDUB-g"
    url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=#{get_mp_token["access_token"]}&openid=#{openid}&lang=zh_CN"
    result = JSON.parse(RestClient.get(url).to_s)
    if result['subscribe'] == 1
      # render text:'已关注'
      true
    else
      # render text:'未关注'
      false
    end
  end

  ####公众平台使用的token
  # 把请求后的结果转换为一个对象
  # grant_type	是	获取access_token填写client_credential
  # appid	是	第三方用户唯一凭证
  # secret	是	第三方用户唯一凭证密钥,即appsecret
  def get_mp_token
    str_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=#{$appid}&secret=#{$app_secret}"
    token_data = JSON.parse(RestClient.get(str_url))
    return token_data
  end