Предполагая, что вы имеете в виду запрос присутствия пользователя через XMPP, имейте в виду, что это будет только , если ваша учетная запись App Engine авторизована по этот пользователь. Если вы уже достигли этого уровня, запрос наличия (пользователь вошел / вышел) довольно прост ( source ).
Если пользователь Google Talk подписался на приложение (принял приглашение или пригласил приложение в чат), приложение может обнаружить доступность пользователя, выполнив запрос POST на /_ah/xmpp/presence/available
. Если пользователь подписан и доступен, вы можете отправить ему информацию о присутствии и статусе вашего приложения:
// In the handler for _ah/xmpp/presence/available
XMPPService xmppService = XMPPServiceFactory.getXMPPService();
Presence presence = xmppService.parsePresence(req);
// Split the XMPP address (e.g., user@gmail.com)
// from the resource (e.g., gmail.CD6EBC4A)
String from = presence.getFromJid().getId().split("/")[0];
// Mirror the contact's presence back to them
xmppService.sendPresence(from, PresenceType.AVAILABLE, presence.getPresenceShow(), presence.getStatus());
Чтобы уточнить , ваше приложение получает автоматические уведомления о присутствии по следующим путям POST URL:
- POSTs к
/_ah/xmpp/presence/available/
сигнализируют, что пользователь доступен , и предоставляют статус чата пользователя.
- POSTs к
/_ah/xmpp/presence/unavailable/
сигнализирует, что пользователь недоступен .
- POST для
/_ah/xmpp/presence/probe/
запроса текущего присутствия пользователя.
Например, когда пользователь sally входит в систему, вы получите POST-запрос к /_ah/xmpp/presence/available/
, который ваш сервер затем должен будет обработать. Затем, когда sally выйдет из системы, вы получите отдельный POST-запрос к /_ah/xmpp/presence/unavailable/
.