1

私は SkypeBot でいくつかの楽しい機能を実装する作業を行っています。実装したい機能の 1 つは、新しい連絡先を追加する機能です。Skype4Py ドキュメントを確認しているときに、次の方法に注意してください。

http://skype4py.sourceforge.net/doc/html/Skype4Py.client.Client-class.html#OpenAddContactDialog

次のコードを使用して、これにアクセスしようとしています。

sky = Skype4Py.Skype()
client = Skype4Py.client.Client(sky)
sky.Attach()
client.OpenAddContactDialog("test")

ただし、Skype4py.client.Client からほとんどすべてを利用しようとすると、トレースバックでタイムアウトが発生します。

Traceback (most recent call last):
 File "<input>", line 1, in <module>
 File "build/bdist.macosx-10.8-intel/egg/Skype4Py/client.py", line 164, in OpenDialog
 self._Skype._DoCommand('OPEN %s' % tounicode(' '.join(params)))
 File "build/bdist.macosx-10.8-intel/egg/Skype4Py/skype.py", line 276, in _DoCommand
 self.SendCommand(command)
 File "build/bdist.macosx-10.8-intel/egg/Skype4Py/skype.py", line 778, in SendCommand
 self._Api.send_command(Command)
 File "build/bdist.macosx-10.8-intel/egg/Skype4Py/api/darwin.py", line 395, in send_command
raise SkypeAPIError('Skype command timeout')
SkypeAPIError: Skype command timeout

クライアント クラス内でアクセスしようとするすべてのメソッドで、このタイムアウト エラーが発生します。(例: OpenAuthorizationDialog、OpenCallHistoryTab、OpenContactsTab)。この方法に間違ってアクセスしていますか、それとも新しいバージョンの Skype ではこの方法がサポートされていない可能性がありますか? これを機能させるための助け、またはSkype4Pyを介して連絡先を正常に追加する方法は非常に高く評価されます.

4

2 に答える 2

0

@Torxed の答えは正しかったですが、最後の 1 マイルを達成できなかった場合に備えて、ここに詳しい情報があります。

この方法で連絡先を追加できました。

import Skype4Py
sky = Skype4Py.Skype()
sky.Attach()
requestMessage = "Please accept my request!"
searchResults = sky.SearchForUsers('echo123')
firstResult = searchResults[0]
firstResult.SetBuddyStatusPendingAuthorization(requestMessage)

ただし、これは検索によって返された最初の結果を追加するだけなので注意してください。ユーザー名が正確であれば問題ありません。

于 2016-03-14T05:12:06.197 に答える