Crates.io | weixin_rust |
lib.rs | weixin_rust |
version | 0.1.6 |
source | src |
created_at | 2023-03-01 01:48:17.853276 |
updated_at | 2023-04-14 06:34:26.593059 |
description | weixin api impl |
homepage | https://github.com/ithander/wxrust.wiki.git |
repository | https://github.com/ithander/wxrust.wiki.git |
max_upload_size | |
id | 797668 |
size | 62,619 |
#这是一个三方工具包,用于调用企业微信的接口
基本上大部分接口传参都是json字符串,少数接口参数比较简单,直接传。
返回数据都是Result<serde_json::Value, reqwest::Error>类型,这个类型的使用方使可以参靠serde_json
由于access_token是在内部维护更新的,所以agent变量必须是可变的mut
目前可用的接口比较少,会陆续更新上,敬请期待...
可能通过weixin_rust中的工具方法自己实现接口调用,例如
use agent::tools;
pub fn some_weixin_interface(agent:&mut Agent,son_params:String){
agent.fresh_token();
let url=format!("https://qyapi.weixin.qq.com/cgi-bin/***?access_token={}",agent.get_access_token());
tools::post_json(url,json_params)
}
pub fn some_weixin_interface(agent:&mut Agent,id:String){
agent.fresh_token();
let url=format!("https://qyapi.weixin.qq.com/cgi-bin/***?access_token={}&id={}",agent.get_access_token(),id);
tools::get_json(url)
}
use weixin_rust::agent;//引入应用模块
fn main(){
//由于access_token是内部自动维护的,需要定时更新,所以ag必须是mut 可变的
let mut ag= agent::Agent::new("corpid".to_string(),"agent_secret".to_string());
ag.fresh_token();//这个方法一般情况下是不需要手动调用的。只有在刚new出来的agent的情况下才需要。
println!("token={}",ag.get_access_token());//这个方法额外提供的,返回的是&str
}
use weixin_rust::agent;
fn main(){
let mut ag= agent::Agent::new("corpid".to_string(),"agent_secret".to_string());
let r=ag.get_api_domain_ip();//所有接口方法内部会自动刷新access_token
println!("{}",r["ip_list"]);
//注意:所有接口返回的类型都是:Result<serde_json::Value, reqwest::Error>
}
use weixin_rust::agent;
fn main(){
let mut ag= agent::Agent::new("corpid".to_string(),"agent_secret".to_string());
let params_json=json!({
"open_userid_list":["xxx", "yyy"],
"source_agentid":100001
});
//也可以把一个struct转成json字符串
let params_json_str=serde_json::to_string(¶ms_json).unwrap();
let r=ag.openuserid_to_userid(params_json_str);
}
use weixin_rust::agent;
use weixin_rust::mail_list;
fn main(){
let mut ag= agent::Agent::new("corpid".to_string(),"agent_secret".to_string());
let mut user_service=ag.get_user_service();//获取用户服务对象
let ur=user_service.get_user(String::from("123456"));
println!("{:?}",ur);
}