2010-07-27 59 views
5

我家有一臺舊機器,其中一臺 這臺機器所做的是檢測一個房子是否在 的某扇門剛剛打開或關閉。使用libpurple的好例子?

現在,我讓那臺機器在私人的 Twitter帳戶上發佈推文。

我想給這臺機器自己的AIM賬戶 ,並讓它在AIM上給我發送消息。將發送的唯一消息 字面意思是「前門打開」,並且「前門關閉」 。

看起來的libpurple是 處理各種即時消息傳遞協議,常用的庫,即使在Adium的使用 ,但它是非常複雜的, 我無法弄清楚如何使用它。

有沒有人有或知道一個簡單的代碼示例 使用libpurple?

回答

3

我個人發現Pidgin的源代碼可以直接閱讀。還有更多使用libpurple的即時消息客戶端,但是,您可以檢查Wikipedia瞭解更多詳情。

+0

的libpurple是發展成爲一個後端的洋涇浜,所以這應該是事實上的地方開始。但正如你所說,現在還有很多人在使用它。 – Spudley 2011-02-11 16:34:08

+0

2年後。你認爲你的答案應該更新! – 2012-07-03 12:08:50

1

我之前在bash腳本中做過這種事情。不幸的是,代碼丟失了,但是您可能希望將dbus視爲解決方案的一部分。代碼相對簡單。

This page on updating pidgin status可能是一個很好的起點。

對於您的應用程序,它可能是那麼容易,因爲:

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

(觀看引號!)

purple-remote(1)

1

我打過龍^ Wnonexistent文檔,它似乎是合理的:-) 有一些時間來破解一些東西在一起,我認爲這可能值得快速檢查。

重要和良好的知道,那使用內部的DBus服務,

  1. 運行這如屏幕很長時間:),
  2. 紫色遙控器應運行在 相同的dbus會話。我製作了一個 腳本,該腳本在啓動時啓動會話 ,並在所有用戶的bashrc中導出DBUS_SESSION_BUS_ADDRESS 。感覺哈克?:)

任何人與libpurple更好的技能,請halp我們出去! :-)

+0

呃,和Makefile:http://koshinae.pastebin.com/TPM8en2i – Koshinae 2011-02-11 16:27:49

0

您應該仔細看看libpurple源文件(libpurple/example/nullclient.c)中提供的nullclient.c。它執行登錄到服務器並添加一些有用的回調。要發送信息,將它添加到(例如)功能signed_on:

PurpleConvIm im; 
im.conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, "[email protected]"); 
purple_conv_im_send(&im, "open door");