5

我家里有一台旧机器,这台机器做的一件事是检测房子里的特定门是刚刚打开还是关闭。

现在,我让那台机器在私人 Twitter 帐户上发布推文。

我现在想给这台机器自己的 AIM 帐户,让它在 AIM 上给我发一条消息。将发送的唯一消息实际上是“前门打开”和“前门关闭”。

看起来 libpurple 是处理各种即时通讯协议的常用库,甚至在 Adium 中也有使用,但它非常复杂,我不知道如何使用它。

是否有人拥有或知道使用 libpurple 的简单代码示例?

4

4 回答 4

3

我个人发现Pidgin的源代码易于阅读。还有更多使用 libpurple 的 IM 客户端,您可以查看Wikipedia了解更多详细信息。

于 2010-07-27T12:04:00.777 回答
1

我以前在 bash 脚本中做过这种事情。不幸的是,代码丢失了,但您可能希望将 dbus 视为解决方案的一部分。代码相对简单。

这个关于更新 pidgin 状态的页面可能是一个很好的起点。

对于您的应用程序,它可能很简单:

purple-remote uri 'aim:goim?screenname=yourimhandle&message="front door open"'

(看报价!)

请参阅紫色远程(1)

于 2010-07-29T02:27:07.693 回答
1

我与龙战斗^W不存在的文件,这似乎是合理的:-)有时间一起破解一些东西,我认为它可能值得快速检查。

重要且值得了解的是,要使用内部 DBus 服务,

  1. 在例如屏幕中运行它很长时间:),
  2. 紫色远程应该在同一个 dbus 会话中运行。我制作了一个脚本,在启动时启动会话并在所有用户的 bashrc 中导出 DBUS_SESSION_BUS_ADDRESS。感觉很hacky?:)

任何对 libpurple 有更好技能的人,请阻止我们!:-)

于 2011-02-11T16:27:19.540 回答
0

您绝对应该查看libpurple 源 (libpurple/example/nullclient.c) 中提供的 nullclient.c 它执行登录到服务器并添加一些有用的回调。要发送消息,请将其添加到(例如)函数 signed_on:

PurpleConvIm im;
im.conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, "other@example.com");
purple_conv_im_send(&im, "open door");
于 2012-02-24T22:55:37.150 回答