Skip to content

Message

すべてのハンドラは *goroku.Message を受け取ります。

フィールド

フィールド意味
IDint64メッセージ ID
ChatIDint64送信されたチャット
SenderIDint64送信者のユーザー ID。送信者がユーザーでない場合は 0 — 匿名管理者やチャンネル名義の投稿
SenderChannelIDint64送信元として使われたチャンネル。ユーザーの場合は 0
SenderIsChannelbool送信者がユーザーではなくチャンネルか
Textstring書式適用後のテキスト
RawTextstring入力そのままのテキスト
Entities[]tg.MessageEntityClass書式エンティティ
Outboolこのアカウントが送信した
Mediatg.MessageMediaClass添付、無ければ nil
IsPrivatebool個人チャット
IsGroupboolグループチャット
IsChannelboolチャンネル
ReplyToMsgIDint64返信先メッセージ、無ければ 0
IsForwardedbool転送されたもの
FwdFromtg.MessageFwdHeader転送ヘッダ
ViaBotIDint64使用されたインラインボット、無ければ 0
Answeredboolハンドラが既に応答したか
Client*CustomTelegramClient受信したクライアント

引数

Args() string

コマンド語より後ろすべて、前後の空白を除いたもの。内部の空白は保たれます。

go
// .say こんにちは  みなさん
msg.Args() // "こんにちは  みなさん"

ArgsList() []string

Args を空白で分割したもの。空なら nil

Arg(i int) string

i 番目の引数。範囲外なら ""。panic しません。

ArgsOrReply() string

Args()。空なら返信先メッセージのテキスト。どちらも無ければ ""

go
code := msg.ArgsOrReply()
if code == "" {
	return msg.Answer("❌ テキストを送るか、メッセージに返信してください")
}

4つとも nil レシーバで安全です。

応答

Answer(text string, opts ...MsgOption) error

自分のメッセージを編集するか、他人がコマンドを実行した場合は返信します。既定の 選択肢です。

Reply(text string, opts ...MsgOption) error

常に新しいメッセージを返信として送ります。

Edit(text string, opts ...MsgOption) error

常にこのメッセージを編集します。

Delete() error

このメッセージを削除します。

オプション

オプション効果
WithNoWebpage(bool)リンクプレビューを抑制
WithReplyTo(int64)メッセージへ返信、またはフォーラムのトピックへ投稿
WithInvertMedia(bool)プレビューをテキストの上に
WithWebPageMedia(url string, optional, forceLarge bool)プレビューを指定
go
msg.Answer("プレビューなし", goroku.WithNoWebpage(true))

その他のメソッド

GetReplyMessage() (*Message, error)

返信先のメッセージを取得します。無い場合は nil, nil を返します。

Context() context.Context

ボット終了時にキャンセルされます。時間のかかる処理に渡してください。

GetChatID() / GetID() / GetReplyToMsgID() int64

nil でも安全なアクセサです。

IsOut() bool

このアカウントが送信したメッセージかどうか。

Released under the GNU AGPL v3 License.