2

私はPython用のsleekXMPPを使用しており、APIを使用してメッセージを送信する関数を作成しましたが、メッセージの受信を調査したところ、何も見つかりませんでした。誰かがこれを解決するのを手伝ってくれるか、可能性を否定してください。ありがとう。以下は、私がメッセージを送信するために使用したコードです。

to = config.get('usermap', to[4:])
gmail_from_user = config.get('auth', 'email')
gmail_from_secret = config.get('auth', 'secret')

sys.stdout = stdouttmp
sys.stderr = stderrtmp
print "Sending chat message to " + to
xmpp = SendMsgBot(gmail_from_user, gmail_from_secret, to, message)
xmpp.register_plugin('xep_0030') # Service Discovery
xmpp.register_plugin('xep_0199') # XMPP Ping

sys.stdout = stdouttmp
if xmpp.connect(('talk.google.com', 5222)):
    xmpp.process(block=True)
else:
    sys.stdout = stdouttmp
    print("Unable to connect.")

sys.stdout = stdouttmp
sys.stderr = stderrtmp

ところで、私はユーザーの電子メールとパスワード、およびいくつかの連絡先に.cfgテキストファイルを使用しています。

4

1 に答える 1

3

send_client.pyの例を使用しているようです。この例の目的は、確実にログインし、単一のメッセージを送信してからログアウトする方法です。ユースケースはメッセージの送信と受信の両方であるため、 echo_client.pyの例を見るとより効果的です。

特に、メッセージを受信するには、次のようにします。

# in your __init__ method:
def __init__(...):
    # ...
    self.add_event_handler('message', self.recv_message)

def recv_message(self, msg):
    # You'll probably want to ignore error and headline messages.
    # If you want to handle group chat messages, add 'groupchat' to the list.
    if msg['type'] in ('chat', 'normal'):
        print "%s says: %s" % (msg['from'], msg['body'])

SendMsgBot繰り返しになりますが、メッセージの送信後に自動的に切断されるため、例の使用を切り替える必要があります。

ヘルプが必要な場合は、sleek@conference.jabber.orgチャットルームがあることを忘れないでください。

-ランス

于 2012-10-29T17:38:48.380 に答える