
Facebook チャットに接続するためのスクリプトを Python で書こうとしています。 どうしてもできません。 コードは次のとおりです:
import xmpp
FACEBOOK_ID = "[email protected]"
PASS = "password"
jid=xmpp.protocol.JID(FACEBOOK_ID)
C=xmpp.Client(jid.getDomain(),debug=['always'])
if not C.connect(("chat.facebook.com",5222)):
raise IOError('Can not connect to server.')
if not C.auth(jid.getNode(),PASS):
raise IOError('Can not auth with server.')
C.send(xmpp.protocol.Message("[email protected]","Hello world from script",))
次のようなエラーが発生します:
An error occurred while looking up _xmpp-client._tcp.chat.facebook.com
これはデバッガーの出力ですここ。
これは、認証は受けていることを示しています (行 136) が、それでもメッセージは送信されません。私はここ何日もこの問題で行き詰まっています。
答え1
@grawity が指摘したように、スクリプトに次のコードを追加することで取得できる JID を取得する必要があります。
コード内でサーバー認証後、サーバーに連絡先リストを要求できます。コードに以下を追加します。
C.sendInitPresence(requestRoster=1)
rosterobject = C.getRoster()
JID のみをチェック/印刷したい場合は、次のループで実行できます。
for i in rosterobject.getItems():
print i
名簿オブジェクトには連絡先(JID)があるはずです。次のステートメントでそのJIDを使用します。
C.send(xmpp.Message("[email protected]","Hello world from script",))
これで問題が解決することを願っています。
答え2
username@chat.facebook.com
JID は認証中のみ有効です。メッセージを送信するには、XMPP 名簿から確認できる JID を使用する必要があります(ただし、自分自身にメッセージを送信することはできません)。-profileid@chat.facebook.com