WxMessageSDK: лёгкий набор инструментов для обработки сообщений в WeChat
Упрощает взаимодействие с WeChat и поддерживает как авторизованные, так и неавторизованные публичные аккаунты.
Большая часть работы этого SDK заключается в том, чтобы упаковать документацию WeChat для разработки. Установка и использование просты.
Добавьте jar-файл SDK в свой classpath. Скачать можно здесь: Если вы используете Maven, просто добавьте следующую зависимость в pom.xml:
<dependency>
<groupId>com.github.cenbylin</groupId>
<artifactId>WxMessage-SDK</artifactId>
<version>0.1.1.RELEASE</version>
</dependency>
Получите appid и secret на платформе WeChat Public Accounts самостоятельно.
Создайте класс MyConfig, который наследуется от WxConig, и поместите appid и secret в методы переопределения:
import com.github.cenbylin.wxmessage.sdk.dev.WxConfig;
/**
* MyConfig.java
*/
public class MyConfig extends WxConfig {
public String getAppID() {
return "{appid}";
}
public String getSecret() {
return "{secret}";
}}
Просто унаследуйте AbstractMessageProcessor, и вы можете выбрать переопределение следующих методов:
Когда получено сообщение WeChat, вызывается соответствующий метод; возвращаемое значение соответствует различным ответам WeChat.
Тип возврата | Ответ |
---|---|
String | Текст |
NewsResBean | Статья |
ImageResBean | Изображение |
Пример
@Component
public class SimpleProcessor extends AbstractMessageProcessor {
@Override
public Object doText(String openid, String text) {
//Ответ в виде статьи
NewsResBean n = new NewsResBean();
n.addArticle(
"Заголовок 1",
"Волшебные листья на востоке",
"http://www.baidu.com",
"bd_logo1_31bdc765.png"
);
n.addArticle(
"Заголовок 2",
"Волшебные листья на востоке",
"http://www.baidu.com",
"bd_logo1_31bdc765.png"
);
return n;
}
}
Примечание: Вы можете написать несколько процессоров и использовать их. Авторизованные публичные аккаунты могут иметь несколько ответов, а неавторизованные публичные аккаунты случайным образом выбирают один процессор. Полный пример см. в example/processorExam.java
Просто добавьте следующие настройки в applicationContext.xml:
<!-- Конфигурация -->
<bean id="wxconfig" class="cn.cenbylin.mp.message.MyConfig"/>
<!-- Объект доступа к сообщению -->
<bean class="com.github.cenbylin.wxmessage.sdk.web.WebMessageAccess">
<constructor-arg ref="wxconfig"/>
</bean>
<!-- BeanPostPrcessor -->
<bean class="com.github.cenbylin.wxmessage.sdk.support.MsgBeanPostPrcessorImpl">
<constructor-arg ref="wxconfig"/>
</bean>
<!-- Сканирование пакета обработчиков сообщений -->
<context:component-scan base-package="cn.cenbylin.mp.message.processor" />
Аналогично создайте объект доступа к сообщениям WebMessageAccess, но этот экземпляр необходимо управлять самостоятельно:
WxConfig myConfig = new WxConfig() {
@Override
public String getAppID() {
return "{appid}";
}
@Override
public String getSecret() {
return "{secret}";
}};
// Добавляем пользовательский обработчик
myConfig.addProcessor(new SimpleProcessor());
myConfig.addProcessor(new SimpleProcessor1());
myConfig.addProcessor(new SimpleProcessor2());
// Создаём доступ к сообщению
WebMessageAccess webMessageAccess = new WebMessageAccess(myConfig);
Независимо от того, используете ли вы сервлет или springmvc, вам нужно только управлять WebMessageAccess в месте обработки сообщений WeChat:
/**
* Обработка сообщений WeChat
* @param request
* @param response
* @throws Exception
*/
@RequestMapping("/doMessage.do")
public void doMsg(HttpServletRequest request,
HttpServletResponse response) throws Exception{
//Неавторизованный публичный аккаунт
webMessageAccess.processForNoAuthorization(request, response);
//Авторизованный публичный аккаунт
//webMessageAccess.processForAuthorization(request, response);
}
Примечание: В тексте запроса присутствуют фрагменты кода на языке Java, однако они не были включены в ответ, поскольку не являются частью исходного текста запроса.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )