`

微信企业号 Ruby gem

阅读更多

 

对接企业微信应答:
https://github.com/lanrion/qy_wechat

(对应公众号gem:https://github.com/lanrion/weixin_rails_middleware)

安装

目前只有Master稳定版本,务必通过:

gem 'qy_wechat', git: 'https://github.com/lanrion/qy_wechat.git'

安装。

使用

示例:https://github.com/lanrion/qy_wechat_example

rails g qy_wechat:install
rails g qy_wechat:migration QyApp # QyAapp 你保存企业号应用的Model

分别会产生:

配置保存企业微信账号的Model:
qy_wechat_example/config/initializers/qy_wechat_config.rb

这里实现你的业务逻辑:
qy_wechat_example/app/decorators/controllers/qy_wechat/qy_wechat_controller_decorator.rb

同时添加以下4个字段:

  • qy_token
  • encoding_aes_key # 长度固定为43个字符,从a-z, A-Z, 0-9共62个字符中选取
  • corp_id
  • qy_secret_key # 用于标志属于哪个应用

特别注意: 由于一个企业号,可以对应多个应用,可以根据 corp_id 关联你保存对应的企业号应用。

最后在你的QyApp中添加如下代码生成你的qy_secret_key:

class QyApp < ActiveRecord::Base

  before_create :init_qy_secret_key

  private

    def init_qy_secret_key
      self.qy_secret_key = SecureRandom.hex(8)
    end
end

生成服务验证URL

qy_wechat_engine.qy_verify_url(qy_app.qy_secret_key)

issue

欢迎提交使用中的bug,或者改进意见:https://github.com/lanrion/qy_wechat/issues/new

QyWechatApi

企业微信高级API

https://rubygems.org/gems/qy_wechat_api

 

Gem Version
 

 

企业号对应多个管理组,请前往 设置 => 权限管理 任意创建一个管理组,在管理组最下角即可获取 CorpID Secret

有问题请及时提issue

gem "qy_wechat_api", git: "https://github.com/lanrion/qy_wechat_api.git"

Token 存储方案

对象存储

如果你是单个企业号,建议使用这个方案,无需任何配置即可使用。

Redis 存储

redis = Redis.new(host: "127.0.0.1", port: "6379")

namespace = "qy_wechat_api:redis_storage"

# cleanup keys in the current namespace when restart server everytime.
exist_keys = redis.keys("#{namespace}:*")
exist_keys.each{|key|redis.del(key)}

redis_with_ns = Redis::Namespace.new("#{namespace}", redis: redis)

QyWechatApi.configure do |config|
  config.redis = redis_with_ns
end

API基本用法

请务必结合:http://qydev.weixin.qq.com/wiki/index.php 理解以下API参数使用。

初始化

group_client = QyWechatApi::Client.new(corpid, corpsecret)
# 为了确保用户输入的corpid, corpsecret是准确的,请务必执行:
group_client.is_valid?

部门

group_client.department.create(name, parent_id, order=nil)
group_client.department.update(id, name, parent_id, order=nil)
group_client.department.delete(id)
group_client.department.list

成员

group_client.user.create(user_id, name, options={})
group_client.user.update(user_id, options={})
group_client.user.delete(user_id)
group_client.user.get(user_id)
group_client.user.simple_list(department_id, fetch_child=nil, status=nil)

标签

group_client.tag.create(name)
group_client.tag.update(id, name)
group_client.tag.delete(id)
group_client.tag.get(id)
group_client.tag.add_tag_users(id, user_ids)
group_client.tag.delete_tag_users(id, user_ids)
group_client.tag.list

自定义菜单

menu_json的生成方法请参考:
https://github.com/lanrion/weixin_rails_middleware/wiki/DIY-menu

group_client.menu.create(menu_json, app_id)
group_client.menu.delete(app_id)
group_client.menu.get(app_id)

Oauth2用法

先要配置你应用的 可信域名 2458023e.ngrok.com
state 为开发者自定义参数,可选

# 生成授权url
group_client.oauth.authorize_url("http://2458023e.ngrok.com", "state")

# 获取code后,获取用户信息
# app_id: 跳转链接时所在的企业应用ID
group_client.oauth.get_user_info("code", "app_id")

发送消息

  # params: (users, parties, tags, agent_id, content, safe=0)
  # users, parties, tags 如果是多个用户,传数组,如果是全部,则直接传 "@all"
  group_client.message.send_text("@all", "@all", "@all", app_id, text_message)

其他发送消息方法请查看 api/message.rb

上传多媒体文件

# params: media, media_type
group_client.media.upload(image_jpg_file, "image")

# 获取下载链接
# 返回一个URL,请开发者自行使用此url下载
group_client.media.get_media_by_id(media_id) 
0
0
分享到:
评论

相关推荐

    C#微信企业OA源码 基于微信企业号的协同OA源码数据库 SQL2008源码类型 WebForm

    微信企业OA源码 基于微信企业号的协同OA源码 一、源码描述 微信企业号协同办公平台是基于微信企业号而建立的协同办公平台,主要三大块,综合办 公,CRM、人力资源 二、平台特点 1、本系统采用纯HTML+JS+Ashx ...

    C#微企移动OA办公系统源码(基于微信企业号)数据库 SQL2008源码类型 WebForm

    C#微企移动OA办公系统源码(基于微信企业号) 一、源码特点 1、微企移动OA系统(以下简称为本系统)是基于微信企业号,借用微信平台而建立的移动办公系统 。企业用户不需要下载安装APP,只需打开微信扫描二维码关注...

    微信入门程序《代码来自牟云飞微信企业号开发完全自学手册》

    在微信企业号开发中,入门程序是学习和掌握微信接口调用的基础。《微信企业号开发完全自学手册》提供了一套完整的教程,帮助开发者逐步理解并实现与微信接口的交互。本节主要介绍主动调用模式,即由服务器端向微信...

    微信企业号推广案例

    【微信企业号】是微信为企事业单位打造的一款企业级通讯与办公工具,旨在解决传统OA系统在移动设备上的局限性,如界面不美观、系统兼容性差和推广困难等问题。微信企业号通过集成多种功能,为企业提供了一个统一的...

    微信企业号推广建设方案

    微信企业号是腾讯为企业用户打造的一个专业的企业内部沟通与协作平台,它集成了多种功能,旨在提高企业的工作效率,促进内部信息的流通。本推广建设方案详细阐述了如何利用微信企业号来构建一个高效、便捷的数字化...

    C#微信企业号接收和发送消息

    在本文中,我们将深入探讨如何使用C#编程语言与微信企业号进行交互,实现消息的接收和发送。微信企业号是一种为企业用户提供内部通讯和管理工具的服务,它允许开发者通过API接口进行定制化开发,实现自动化的工作...

    C#最精简的微信企业号发送消息

    在IT行业中,微信企业号是一种重要的企业级通讯平台,它允许企业与员工、客户或者其他企业进行互动。在本文中,我们将深入探讨如何使用C#语言实现微信企业号的消息发送功能,以及相关的技术要点。 首先,"C#最精简...

    C# 微信企业号验证源码MVC版+webForm版

    在本文中,我们将深入探讨关于"C#微信企业号验证源码MVC版+webForm版"的相关知识点。这个源码包包含两个版本的实现:基于ASP.NET MVC和基于ASP.NET Web Forms,它们都是用于验证微信企业号的应用。下面将详细阐述这...

    c#winform开发微信企业号推送各类消息

    在本文中,我们将深入探讨如何使用C# WinForm开发微信企业号消息推送功能。微信企业号是一个为企业内部沟通和管理而设计的平台,它提供了丰富的API接口,允许开发者通过编程方式实现各种消息的推送,包括文本、图片...

    微信企业号接口开发源码(Java)

    微信企业号接口开发源码(Java)

    微信企业号应用介绍

    最新的微信企业号应用介绍,(企业)微信企业号建设方案 ,压缩后供参考

    c#微信企业号推送消息,亲测通过_(0601).rar

    在C#中,微信企业号推送消息涉及到微信官方提供的API接口和C#编程技术的结合。这个压缩包文件“c#微信企业号推送消息,亲测通过_(0601).rar”很可能包含了一个示例项目或者代码片段,用于演示如何在C#环境下实现向...

    利用微信企业号搭建企业移动管理平台的实践与探索

    当今社会移动互联网发展越来越快,需要建立相应 的移动管理系统来加强对移动...本文主要探讨利用微信企业号搭建企 业移动管理平台的实践与探索。通过不断的探索与实践为企 业建立一个更加安全的移动信息管理系统。

    微信企业号推送消息

    微信企业号推送消息是微信为企业用户提供的通讯工具,它允许企业与员工、客户以及合作伙伴进行高效沟通。在微信企业号中,可以实现主动推送消息、接收消息并自动回复的功能,从而提升企业的内部管理效率和对外服务...

    c#微信企业号推送消息,亲测通过_(0610).rar.rar

    在本文中,我们将深入探讨如何使用C#编程语言与微信企业号进行消息推送,并结合提供的压缩包文件"**c#微信企业号推送消息,亲测通过_(0610).rar**"中的示例代码来解析这个过程。微信企业号是微信为企业用户提供的一...

    C# 微信企业号 源码下载

    【C#微信企业号源码下载】是一个针对微信企业号应用开发的源代码包,主要使用C#编程语言实现。微信企业号是微信为企事业单位提供的一个内部沟通和对外服务的平台,它允许开发者通过API接口来实现各种功能,如消息推...

    微信企业号开发SDK

    微信公众平台企业号PHP-SDK, 官方API类库,微信企业号开发SDK

    微信企业号官方SDK开发包

    微信公众平台企业号PHP-SDK, 官方API类库,微信企业号开发SDK

    微信企业号接口开发源码

    微信企业号接口开发源码是针对微信企业号平台进行应用程序开发的重要参考资料,它包含了实现微信企业号各项功能的代码示例和实现逻辑。微信企业号是微信为企业用户提供的内部沟通和管理工具,允许企业构建自己的工作...

    福田微信企业号使用手册1期.docx

    《福田微信企业号使用手册1期》是一份详细介绍如何使用福田戴姆勒微信企业号的文档,旨在帮助用户更好地理解和操作这一平台。手册分为多个章节,涵盖了从基础概念到具体功能使用的全面指导。 1. **文档说明和系统...

Global site tag (gtag.js) - Google Analytics