GAE取消订阅用户的存在

时间:2011-10-25 22:58:19

标签: python google-app-engine xmpp

有没有办法取消订阅用户的存在?我不想再为特定用户接收/ _ah / xmpp / presence / ...的更新。我似乎无法找到一个简单的API调用来做到这一点。

在挖掘XMPP协议后,我发现this似乎表明使用存在类型'unsubscribe'执行send_presence应该有效。不幸的是,深入了解GAE的xmpp API,它似乎定义了

_VALID_PRESENCE_TYPES = frozenset([PRESENCE_TYPE_AVAILABLE,
                               PRESENCE_TYPE_UNAVAILABLE,
                               PRESENCE_TYPE_PROBE])

这意味着我甚至无法执行send_presence(user_to_remove, status="", presence_type="unsubscribe")(PRESENCE_TYPE_AVAILABLE,而其他只是根据xmpp规范的“可用”字符串)

有没有人遇到过这个问题或知道如何实现这个目标?

2 个答案:

答案 0 :(得分:3)

似乎你无法做到。 The docs(和docstring)确认presence_type接受RFC 3921中定义的类型的子集。

您可以将此作为功能请求提交给the issue tracker

答案 1 :(得分:2)

作为一项实验,您可以重新实现自己的“send_presence”,它与现有功能完全相同,而无需检查有效的状态类型。没有正式批准,但值得一试。

有一点需要注意的是,这不会阻止客户端重新订阅您的机器人或忽视它的行为不端的客户。

正如德鲁所说,请在问题跟踪器上提交一个问题。