Skip to main content

SubscribeApi

Struct SubscribeApi 

Source
pub struct SubscribeApi { /* private fields */ }
Expand description

Subscribe Message API

Provides methods for sending subscribe messages and managing templates.

Implementations§

Source§

impl SubscribeApi

Source

pub fn new(context: Arc<WechatContext>) -> Self

Create a new SubscribeApi instance

Source

pub async fn send( &self, options: SubscribeMessageOptions, ) -> Result<(), WechatError>

Send subscribe message

POST /cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN

§Arguments
  • options - Subscribe message options
§Example
use wechat_mp_sdk::api::subscribe::{
    SubscribeApi, SubscribeMessageOptions, SubscribeMessageData, SubscribeMessageValue
};

let mut data = SubscribeMessageData::new();
data.insert("thing1".to_string(), SubscribeMessageValue::new("Order #123"));

let options = SubscribeMessageOptions {
    touser: "user_openid".to_string(),
    template_id: "template_id".to_string(),
    data,
    page: Some("pages/index/index".to_string()),
    miniprogram_state: None,
    lang: None,
};

subscribe_api.send(options).await?;
Source

pub async fn add_template( &self, tid: &str, kid_list: Option<Vec<i32>>, scene_desc: Option<&str>, ) -> Result<String, WechatError>

Add template from template library

POST /wxaapi/newtmpl/addtemplate?access_token=ACCESS_TOKEN

§Arguments
  • tid - Template library ID
  • kid_list - Keyword ID list (optional)
  • scene_desc - Scene description (optional)
§Returns

The private template ID

§Example
let pri_tmpl_id = subscribe_api.add_template("tid123", Some(vec![1, 2, 3]), Some("payment notification")).await?;
println!("Template ID: {}", pri_tmpl_id);
Source

pub async fn get_template_list(&self) -> Result<Vec<TemplateInfo>, WechatError>

Get template list

GET /wxaapi/newtmpl/gettemplate?access_token=ACCESS_TOKEN

§Returns

List of templates

§Example
let templates = subscribe_api.get_template_list().await?;
for tmpl in templates {
    println!("Template: {} - {}", tmpl.private_template_id, tmpl.title);
}
Source

pub async fn delete_template( &self, pri_tmpl_id: &str, ) -> Result<(), WechatError>

Delete template

POST /wxaapi/newtmpl/deltemplate?access_token=ACCESS_TOKEN

§Arguments
  • pri_tmpl_id - Private template ID to delete
§Example
subscribe_api.delete_template("pri_tmpl_id_123").await?;
Source

pub async fn get_category(&self) -> Result<Vec<CategoryInfo>, WechatError>

Get category list

GET /wxaapi/newtmpl/getcategory?access_token=ACCESS_TOKEN

§Returns

List of categories available for templates

§Example
let categories = subscribe_api.get_category().await?;
for cat in categories {
    println!("Category: {} - {}", cat.id, cat.name);
}
Source

pub async fn get_pub_template_keywords_by_id( &self, tid: &str, ) -> Result<PubTemplateKeywordResponse, WechatError>

Source

pub async fn get_pub_template_title_list( &self, ids: &[i32], start: i32, limit: i32, ) -> Result<PubTemplateTitleListResponse, WechatError>

Source

pub async fn set_user_notify( &self, request: &UserNotifyRequest, ) -> Result<UserNotifyResponse, WechatError>

Source

pub async fn set_user_notify_ext( &self, request: &UserNotifyExtRequest, ) -> Result<UserNotifyResponse, WechatError>

Source

pub async fn get_user_notify( &self, request: &GetUserNotifyRequest, ) -> Result<UserNotifyResponse, WechatError>

Trait Implementations§

Source§

impl WechatApi for SubscribeApi

Source§

fn context(&self) -> &WechatContext

Get a reference to the WeChat context
Source§

fn api_name(&self) -> &'static str

Get the name of this API for logging and error context. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more