使用libpurple的好例子?

时间:2010-07-27 03:30:32

标签: c instant-messaging aim libpurple

我家里有一台旧机器,其中一件事 这台机器确实检测到是否有特定的门 房子刚刚开放或关闭。

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

我现在想给这台机器提供自己的AIM帐户 并让它给AIM发消息唯一的消息 将被发送的字面意思是“前门打开”和 “前门关上了。”

libpurple似乎是一个常用的库 处理各种即时消息传递协议 甚至在Adium中使用,但它非常复杂 我无法弄清楚如何使用它。

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

4 个答案:

答案 0 :(得分:3)

我个人认为Pidgin的源代码很容易阅读。还有更多使用libpurple的IM客户端,您可以查看Wikipedia以获取更多详细信息。

答案 1 :(得分:1)

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

This page on updating pidgin status可能是一个很好的起点。

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

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

(观看报价!)

请参阅purple-remote(1)

答案 2 :(得分:1)

我通过龙战斗^ Wnonexistent文件,它似乎是合理的:-) 有一些时间来破解一些东西,我认为值得快速检查。

重要且值得注意的是,要使用内部DBus服务,

  1. 在例如屏幕很长一段时间:),
  2. 应该运行紫色遥控器 同样的dbus会话。我制造了一个 在启动时启动会话的脚本 并导出DBUS_SESSION_BUS_ADDRESS 在所有用户的bashrc中。感觉hacky?:))
  3. 任何有更好的libpurple技能的人,请停止我们! : - )

答案 3 :(得分: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");