2016-11-27 18 views
0

最近ラズベリーpi(実行中のraspbian)にyowsup pythonクライアントを実装しようとしました。 yowsupの関連ライブラリをすべてダウンロードし、2段階の登録プロセスを完了しました。yowsupの承認が機能しない

私は簡単なエコーボットを作るためにyowsup githubからサンプルのlayer.pyとrun.pyファイルを取った。

私は、私は次のエラーで会っていrun.py実行しよう:すべてのヘルプははるかに高く評価されて

を!

python run.py 
Traceback (most recent call last): 
    File "run.py", line 20, in <module> 
    stack.loop() #this is the program mainloop 
    File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.5.0-py2.7.egg/yowsup/stacks/yowstack.py", line 196, in loop 
    asyncore.loop(*args, **kwargs) 
    File "/usr/lib/python2.7/asyncore.py", line 216, in loop 
    poll_fun(timeout, map) 
    File "/usr/lib/python2.7/asyncore.py", line 156, in poll 
    read(obj) 
    File "/usr/lib/python2.7/asyncore.py", line 87, in read 
    obj.handle_error() 
    File "/usr/lib/python2.7/asyncore.py", line 83, in read 
    obj.handle_read_event() 
    File "/usr/lib/python2.7/asyncore.py", line 449, in handle_read_event 
    self.handle_read() 
    File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.5.0-py2.7.egg/yowsup/layers/network/layer.py", line 102, in handle_read 
    self.receive(data) 
    File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.5.0-py2.7.egg/yowsup/layers/network/layer.py", line 110, in receive 
    self.toUpper(data) 
    File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.5.0-py2.7.egg/yowsup/layers/__init__.py", line 76, in toUpper 
    self.__upper.receive(data) 
    File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.5.0-py2.7.egg/yowsup/layers/stanzaregulator/layer.py", line 29, in receive 
    self.processReceived() 
    File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.5.0-py2.7.egg/yowsup/layers/stanzaregulator/layer.py", line 49, in processReceived 
    self.toUpper(oneMessageData) 
    File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.5.0-py2.7.egg/yowsup/layers/__init__.py", line 76, in toUpper 
    self.__upper.receive(data) 
    File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.5.0-py2.7.egg/yowsup/layers/auth/layer_crypt.py", line 65, in receive 
    self.toUpper(payload) 
    File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.5.0-py2.7.egg/yowsup/layers/__init__.py", line 76, in toUpper 
    self.__upper.receive(data) 
    File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.5.0-py2.7.egg/yowsup/layers/coder/layer.py", line 35, in receive 
    self.toUpper(node) 
    File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.5.0-py2.7.egg/yowsup/layers/__init__.py", line 76, in toUpper 
    self.__upper.receive(data) 
    File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.5.0-py2.7.egg/yowsup/layers/logger/layer.py", line 14, in receive 
    self.toUpper(data) 
    File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.5.0-py2.7.egg/yowsup/layers/__init__.py", line 76, in toUpper 
    self.__upper.receive(data) 
    File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.5.0-py2.7.egg/yowsup/layers/axolotl/layer_control.py", line 44, in receive 
    self.toUpper(protocolTreeNode) 
    File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.5.0-py2.7.egg/yowsup/layers/__init__.py", line 76, in toUpper 
    self.__upper.receive(data) 
    File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.5.0-py2.7.egg/yowsup/layers/__init__.py", line 189, in receive 
    s.receive(data) 
    File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.5.0-py2.7.egg/yowsup/layers/axolotl/layer_receive.py", line 44, in receive 
    self.toUpper(protocolTreeNode) 
    File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.5.0-py2.7.egg/yowsup/layers/__init__.py", line 76, in toUpper 
    self.__upper.receive(data) 
    File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.5.0-py2.7.egg/yowsup/layers/__init__.py", line 189, in receive 
    s.receive(data) 
    File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.5.0-py2.7.egg/yowsup/layers/__init__.py", line 125, in receive 
    recv(node) 
    File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.5.0-py2.7.egg/yowsup/layers/auth/layer_authentication.py", line 81, in handleFailure 
    raise AuthError(nodeEntity.getReason()) 
yowsup.layers.auth.autherror.AuthError: not-authorized 

答えて

0

私は最近、非常によく似た問題を抱えていました。問題はこのチュートリアルが古くなっていると思います。スタックに含める必要があるAxolotlレイヤーは、(see this commit)ではなく、3つあります。

layers = (
    EchoLayer, 
    YowParallelLayer([YowAuthenticationProtocolLayer, YowMessagesProtocolLayer, YowReceiptProtocolLayer, 
         YowAckProtocolLayer]), AxolotlReceivelayer, AxolotlSendLayer, AxolotlControlLayer, 
) + YOWSUP_CORE_LAYERS 

はあなたにも、次のインポートを追加する必要があります:それは今、このように見えることがある

layers = (
    EchoLayer, 
    YowParallelLayer([YowAuthenticationProtocolLayer, YowMessagesProtocolLayer, YowReceiptProtocolLayer, 
         YowAckProtocolLayer]), YowAxolotlLayer 
) + YOWSUP_CORE_LAYERS 

:あなたのスタックがこのように見えただろう

from yowsup.layers.axolotl import AxolotlSendLayer, AxolotlControlLayer, AxolotlReceivelayer 

AxolotlReceivelayerには、「レイヤー」に小文字の「L」が付いています。私はこれがおそらくYowsupのメンテナの一部の見落としであったと考えています。それは残りの名前付けスキームと違和感があるからです。私がしていることは、これはです:

from yowsup.layers.axolotl import AxolotlReceivelayer as AxolotlReceiveLayer 

私のコードに一貫性があります。

関連する問題