最新消息

[公告2014/05/30] 如有需要將部落格中,任何一篇文章的程式碼使用在商業用途,請與我聯繫。

[公告2015/04/26] Line版的 iInfo程式與投資應用 群組已上線想加入的朋友們,請先查看 "入群須知" 再與我聯繫 Line : aminwhite5168,加入請告知身分與回答 "入群須知" 的問題。

[公告2018/04/22] 台北 Python + Excel VBA 金融資訊爬蟲課程,課程如網頁內容 金融資訊爬蟲班:台北班 Python 金融資訊爬蟲、EXCEL VBA 金融資訊爬蟲

[公告2019/01/08] 請注意:我再次重申,部落格文章的程式碼,是要提供各位參考與學習,一旦網頁改版請自行修改,別要求東要求西要我主動修改,你們用我寫東西賺錢了、交差了,請問有分我一杯羹嗎?既然賺錢沒分我,請問有什麼理由要求我修改,如果沒能力改,就花錢來找我上課。

[公告2019/12/01] 若各位有 Excel VBA 案子開發需求,歡迎與我聯繫,可接案處理。

[公告2020/05/22] 頁面載入速度慢,起因為部分JS來源(alexgorbatchev.com)失效導致頁面載入變慢,目前已做調整,請多見諒。
顯示具有 pyxmpp 標籤的文章。 顯示所有文章
顯示具有 pyxmpp 標籤的文章。 顯示所有文章

2012年8月28日 星期二

使用pyxmpp操控Gtalk


搭配以下Python程式碼,即可對Gtalk發送訊息
#!/usr/bin/python
# -*- coding: utf-8 -*-

from pyxmpp.jid import JID
from pyxmpp.message import Message
from pyxmpp.jabber.client import JabberClient
from pyxmpp.jabber.simple import send_message
from pyxmpp import streamtls

class Gtalk():
    def __init__(self, sid, spwd):
        self.sid = JID(sid)
        self.spwd = spwd

    def send_msg(self, rid,  msg):
        self.rid = JID(rid)
        if not self.sid.resource:
            self.sid = JID(self.sid.node, self.sid.domain, 'send_message')

        msg = Message(to_jid=self.rid, body=msg)
        def send(stream):
            stream.send(msg)

        self.xmpp_do(send)

    def xmpp_do(self, function):
        class Client(JabberClient):
            def session_started(self):
                function(self.stream)
                self.disconnect()

        tls = streamtls.TLSSettings(require=True, verify_peer=False)
        auth = ['sasl:PLAIN']
        gtalkClient = Client(self.sid, self.spwd, tls_settings=tls, auth_methods=auth)
        gtalkClient.connect()
        try:
            gtalkClient.loop(1)
        except KeyboardInterrupt:
            print u'disconnecting...'
            gtalkClient.disconnect()

if __name__ == '__main__':
    g = Gtalk('account@gmail.com', u'password')
    g.send_msg('to@gmail.com', 'Hello World')

程式碼來源 : 比較win32下python與java通過實現XMPP協定發送gtalk消息

2012年8月27日 星期一

在windows安裝pyxmpp,架設gtalk機器人

Google Talk是在geek中相當流行的一款IM用戶端,其採用了jabber的開放式協議xmpp,使得第三方開發非常方便。

jabber.py早已經被廢棄,不推薦
xmpppy是jabber.py的繼承者,使用方便簡單,有彩色debug輸出(如果你的shell支援彩色的話)
xmpppy適合羽量級的開發,不需要依賴其他python庫
pyxmpp是最符合XMPP和jabber協議的庫,作者本身就是Jabber標準組的成員之一
pyxmpp的安裝比xmpppy麻煩的多。需要libxml2、dnspython和M2Crypto,可惜不支持Win32

以下將介紹如何在windows下安裝pyxmpp環境

1. 下載安裝Python 2.7.3 : http://www.python.org/download/releases/2.7.3/
2. 下載安裝M2Crypto-0.20.2.win32-py2.7.exe : http://chandlerproject.org/Projects/MeTooCrypto#Downloads
3. 下載安裝dnspython-1.6.0.win32.exe : http://www.dnspython.org/kits/1.6.0/
4. 下載安裝libXML2 : http://xmlsoft.org/sources/win32/python/
5. 下載pyxmpp-1.1.2.tar.gz : https://github.com/Jajcus/pyxmpp/downloads/  (一定使用這裏這裡的安裝)
6. 將pyxmpp-1.1.2.tar.gz 解壓縮至C:\Python27\Lib中
7. 開啟命令提示字元,將操作目錄切換至C:\Python27\Lib\pyxmpp-1.1.2中 : "cd C:\Python27\Lib\pyxmpp-1.1.2"
8. 確認安裝pyxmpp所需的安裝資料庫與程式 : 輸入"configure.py" 執行
9. 建立pyxmpp安裝檔 : 輸入"python setup.py build" 執行
10. 開始安裝pyxmpp : 輸入"python setup.py install" 執行