2016-08-28 1 views
1

私はPythonで書かれたプロジェクトを作成しており、Friendicaサーバにアップデートを投稿し、さまざまなAPIを使用して対話する必要があります。しかし、私は非常に限られたAPI使用経験を持っているので、Pythonでどのようにこの機能をコーディングするのか分かりません。 Friendica GitHubには例がありますが、Pythonの例は私にとってはうまくいかないでしょう。Pythonを使用してFriendicaにコンテンツを投稿

#!/usr/bin/env python3 
# -*- coding: utf-8 -*- 

import friendica 
# make a new instance of friendica 
f = friendica.friendica (server = '10.211.55.23/api/statuses/update', username = 'newtest', password = 'klaup8744') 

# check that we are logged in 
f.account_verify_credentials() 

# get the current notifications 
print (f.ping()) 

# post something with the default settings 
f.statuses_update(status = "here is the message you are going to post") 

それは、次のメッセージとの接続を拒否します::のpython3モジュールhttps://bitbucket.org/tobiasd/python-friendica/overviewは、次のようにテストスクリプトでこれを使用して接続しようとしたときしかし、ある

Traceback (most recent call last): 
    File "/usr/lib/python3.4/urllib/request.py", line 1182, in do_open 
    h.request(req.get_method(), req.selector, req.data, headers) 
    File "/usr/lib/python3.4/http/client.py", line 1088, in request 
    self._send_request(method, url, body, headers) 
    File "/usr/lib/python3.4/http/client.py", line 1126, in _send_request 
    self.endheaders(body) 
    File "/usr/lib/python3.4/http/client.py", line 1084, in endheaders 
    self._send_output(message_body) 
    File "/usr/lib/python3.4/http/client.py", line 922, in _send_output 
    self.send(msg) 
    File "/usr/lib/python3.4/http/client.py", line 857, in send 
    self.connect() 
    File "/usr/lib/python3.4/http/client.py", line 1223, in connect 
    super().connect() 
    File "/usr/lib/python3.4/http/client.py", line 834, in connect 
    self.timeout, self.source_address) 
    File "/usr/lib/python3.4/socket.py", line 512, in create_connection 
    raise err 
    File "/usr/lib/python3.4/socket.py", line 503, in create_connection 
    sock.connect(sa) 
ConnectionRefusedError: [Errno 111] Connection refused 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "test_1.py", line 12, in <module> 
    print (f.ping()) 
    File "/home/sambraidley/Desktop/friendica.py", line 851, in ping 
    res = urlopen(self.protocol()+self.apipath[:-4]+'/ping').read().decode('utf-8') 
    File "/usr/lib/python3.4/urllib/request.py", line 161, in urlopen 
    return opener.open(url, data, timeout) 
    File "/usr/lib/python3.4/urllib/request.py", line 463, in open 
    response = self._open(req, data) 
    File "/usr/lib/python3.4/urllib/request.py", line 481, in _open 
    '_open', req) 
    File "/usr/lib/python3.4/urllib/request.py", line 441, in _call_chain 
    result = func(*args) 
    File "/usr/lib/python3.4/urllib/request.py", line 1225, in https_open 
    context=self._context, check_hostname=self._check_hostname) 
    File "/usr/lib/python3.4/urllib/request.py", line 1184, in do_open 
    raise URLError(err) 
urllib.error.URLError: <urlopen error [Errno 111] Connection refused> 

friendicaのpython3モジュールをすることができます次のようになりますhttps://bitbucket.org/tobiasd/python-friendica/src/b0b75ae80a6e747e8724b1ae36972ebfd939beb5/friendica.py?fileviewer=file-view-default

My Friendicaサーバーは、アドレスが10.211.55.23で、username = 'newtest'とパスワード 'klaup8744'のテスト資格情報を持つVM内で設定され、usiとして完全に動作しています

/usr/bin/curl -u newtest:klaup8744 10.211.55.23/api/statuses/update.xml -d source="Testing" -d status="This is a test status" 
+0

はでテストコードとトリックを行うように見えたfriendica.pyスクリプト –

答えて

0

source linkあなたが投稿、friendicaはデフォルトでHTTPSを使用していますによると次のようにアップデートを投稿するカールコード例をngのは、完全に働きました。成功したカールリクエストはhttpを使用しています。
は、HTTPを使用してfriendicaをインスタンス化してみてください。

f = friendica.friendica (server = '10.211.55.23/api/statuses/update', 
username = 'newtest', password = 'klaup8744', useHTTPS=False) 
+0

へのリンクを追加しました!私はそれがそれと関係するかもしれないと思った! –

関連する問題