Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 使用libpurple的好例子?_C_Instant Messaging_Aim_Libpurple - Fatal编程技术网

C 使用libpurple的好例子?

C 使用libpurple的好例子?,c,instant-messaging,aim,libpurple,C,Instant Messaging,Aim,Libpurple,我的房子里有一台旧机器 这台机器的功能是检测特定的门是否处于关闭状态 这所房子刚开门或关门 现在,我让那台机器在私人网站上发布推特 推特账户 我现在想给这台机器它自己的AIM帐户 让它在AIM上给我发个信息。唯一的信息 将被发送的信息字面上是“前门打开”和 “前门关上了。” libpurple似乎是一个常用的 处理各种即时消息协议,并且是 甚至在Adium中使用,但它非常复杂和 我不知道怎么用它 有没有人拥有或知道这样一个简单的代码示例 使用libpurple?我个人认为的源代码很容易阅读。不过

我的房子里有一台旧机器 这台机器的功能是检测特定的门是否处于关闭状态 这所房子刚开门或关门

现在,我让那台机器在私人网站上发布推特 推特账户

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

libpurple似乎是一个常用的 处理各种即时消息协议,并且是 甚至在Adium中使用,但它非常复杂和 我不知道怎么用它

有没有人拥有或知道这样一个简单的代码示例
使用libpurple?

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

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

这可能是一个很好的起点

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

purple-remote uri 'aim:goim?screenname=yourimhandle&message="front door open"'
(注意引用!)


请看。

我通过龙战斗,这是一个不存在的文件,似乎是合理的:-) 有时间把一些东西拼凑在一起,我想也许值得一试

  • 扩展紫色远程脚本:
  • 使用libpurple的东西: -
  • 如果有人需要,则运行回调脚本 发送即时消息,回写stdout, 调用此脚本 紫色电话答录机
重要且值得了解的是,要使用内部DBus服务

  • 长时间在屏幕上运行此选项:)
  • 紫色遥控器应在中运行 相同的dbus会话。我犯了一个错误 启动时启动会话的脚本 并导出DBUS_会话_总线_地址 在所有用户的bashrc中。感觉不舒服吗?:)

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

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

    PurpleConvIm im;
    im.conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, "other@example.com");
    purple_conv_im_send(&im, "open door");
    

    嗯,还有Makefile:libpurple是作为Pidgin的后端开发的,所以实际上应该从这里开始。但正如你所说,现在也有很多人在使用它。两年后。你认为你的答案应该更新吗!