尝试使用作用域方法,当新用户加入该组时,该方法像欢迎消息上的超级按钮一样起作用。
//index.js
const Telegram = require('telegram-node-bot'),
tg = new Telegram.Telegram('MYAPI', {
workers: 1
});
const ForwardController = require('./controllers/forward')
tg.router.when(new Telegram.TextCommand('/info', 'infoCommand'), new InfoController())
.otherwise(new ForwardController());
//forward.js
const Telegram = require('telegram-node-bot');
class ForwardController extends Telegram.TelegramBaseController {
handle(scope) {
if ('channel' == scope.message.chat._type) {
scope.api.forwardMessage(scope.message._chat._id, _forwardFromChat._text);
}
}
}
module.exports = ForwardController;
我尝试了许多组合,但消息从未转发...该漫游器已经是该频道的管理员,也已放入组中。 (也有与机器人打开的私人消息,所以我认为它也应该在那里转发)
答案 0 :(得分:0)
看看API reference for you library,文档页面似乎已关闭,因此Github是您的朋友。
您正在进行的Observable
调用具有错误的参数,并且正在访问私有类变量。它还在返回一个承诺,因此您应该等待该承诺或将disposables.add(modelManager.apiCall()
.flatMap(apiResponse -> {
modelManager.storeInDatabase(apiResponse);
return modelManager.loadFromDatabas()
})
.subscribeOn(Schedulers.io())
.observeOn(mainThread)
.subscribeWith(new DisposableSingleObserver {
public void onSuccess(ApiResponse apiResponse) {
view.showData(data);
}
public void onError(Throwable e) {
}
})
链接到该承诺。您可以在forwardMessage
实例本身上使用类方法。
应该更像是:
.then
这将使用Scope
实例方法并为您处理当前聊天的ID,您所需要的只是要将消息发送到的聊天的ID,然后替换{{1} }和该ID。