パッケージ google.golang.org/appengine/xmpp(v1.6.8)

xmpp パッケージは、XMPP 互換サービスのユーザーとインスタント メッセージを送受信するための手段を提供します。

メールを送信するには、

m := &xmpp.Message{
    To:   []string{"kaylee@example.com"},
    Body: `Hi! How's the carrot?`,
}
err := m.Send(c)

メッセージを受信するには、

func init() {
    xmpp.Handle(handleChat)
}

func handleChat(c context.Context, m *xmpp.Message) {
    // ...
}

変数

ErrPresenceUnavailable、ErrInvalidJID

var (
	ErrPresenceUnavailable = errors.New("xmpp: presence unavailable")
	ErrInvalidJID          = errors.New("xmpp: invalid JID")
)

関数

func GetPresence

func GetPresence(c context.Context, to string, from string) (string, error)

GetPresence は、ユーザーのプレゼンスを取得します。 差出人アドレスが空の文字列の場合は、デフォルト(yourapp@appspot.com/bot)が使用されます。有効な戻り値は ""、"away"、"dnd"、"chat"、"xa" です。プレゼンスが存在しない場合、ErrPresenceUnavailable が返されます。

func GetPresenceMulti

func GetPresenceMulti(c context.Context, to []string, from string) ([]string, error)

GetPresenceMulti は複数のユーザーのプレゼンスを取得します。 差出人アドレスが空の文字列の場合は、デフォルト(yourapp@appspot.com/bot)が使用されます。有効な戻り値は ""、"away"、"dnd"、"chat"、"xa" です。いずれかのプレゼンスを利用できない場合は、appengine.MultiError が返されます。

func Handle

func Handle(f func(c context.Context, m *Message))

Handle は、受信 XMPP メッセージに対して f を呼び出すように調整します。 "chat" または "normal" タイプのメッセージのみが処理されます。

func Invite

func Invite(c context.Context, to, from string) error

Invite は招待を送信します。差出人アドレスが空の文字列の場合は、デフォルト(yourapp@appspot.com/bot)が使用されます。

Message

type Message struct {
	// Sender is the JID of the sender.
	// Optional for outgoing messages.
	Sender string

	// To is the intended recipients of the message.
	// Incoming messages will have exactly one element.
	To []string

	// Body is the body of the message.
	Body string

	// Type is the message type, per RFC 3921.
	// It defaults to "chat".
	Type string

	// RawXML is whether the body contains raw XML.
	RawXML bool
}

Message はチャット受信メッセージを表します。

func (*Message) Send

func (m *Message) Send(c context.Context) error

Send はメッセージを送信します。 特定の受信者でエラーが発生した場合、エラーは appengine.MultiError になります。

Presence

type Presence struct {
	// Sender is the JID (optional).
	Sender string

	// The intended recipient of the presence update.
	To string

	// Type, per RFC 3921 (optional). Defaults to "available".
	Type string

	// State of presence (optional).
	// Valid values: "away", "chat", "xa", "dnd" (RFC 3921).
	State string

	// Free text status message (optional).
	Status string
}

Presence は、送信プレゼンスの更新を表します。

func (*Presence) Send

func (p *Presence) Send(c context.Context) error

Send はプレゼンスの更新を送信します。