2

Wiki ページ (アトラシアンによる Confluence - JIRA エディター) をプログラムで (Python で) 変更したいと思います。私がこれまでに試したことは、ユーザーの行動をシミュレートすることです:

  1. 編集ボタンをクリック
  2. textarea入力内容の変更
  3. 保存ボタンで変更を送信

ページの編集に対応する URL があるので、パート 1 は問題ありません。パート 2 (ページの取得と変更) も問題ありませんが、ステップ 3 を達成する方法がわかりません... を使用してurllib2います。

ご協力いただきありがとうございます !!

編集: XML-RPC は確かに解決策です。この例はまさに私が望んでいることです!

4

2 に答える 2

9
# write to a confluence page
import xmlrpclib

CONFLUENCE_URL = "https://intranet.example.com/confluence/rpc/xmlrpc" 
CONFLUENCE_LOGIN = "a confluence username here"
CONFLUENCE_PASSWORD = "confluence pwd for username"

# get this from the page url while editing
# e.g. ../editpage.action?pageId=132350005 <-- here
PAGE_ID = "132350005" 
client = xmlrpclib.Server(CONFLUENCE_URL, verbose = 0)
auth_token = client.confluence2.login(CONFLUENCE_LOGIN, CONFLUENCE_PASSWORD)
page = client.confluence2.getPage(auth_token, PAGE_ID)

# and write the new contents
page['content'] = "!!!your content here!!!"

result = client.confluence2.storePage(auth_token, page)
client.confluence2.logout(auth_token)

これを行うと、confluence が HTML コードを変更することに注意してください。たとえば、要素のスクリプト、スタイル、および場合によってはタイトル属性を取り除きます。そのようなものを元に戻すには、マクロ コードを使用する必要があります。

これを行う最も簡単な方法は、コンフルエンスでページを編集し、希望どおりに表示してから、ページを取得して印刷ページ['コンテンツ'] を実行し、アトラシアンの人々が標準の html に対して行うことを決めた魔法のような新しいものを確認することです。 .

于 2013-09-13T01:30:10.303 に答える
5

これは、まったく間違った方法のようです。

まず、Confluence にはプラグイン アーキテクチャがあり、HTTP リクエストを使用せずに、アプリケーション自体からプログラムでコンテンツを管理できます。次に、何らかの理由でプラグイン API を使用したくない、または使用できない場合でも、次の明白なオプションはSOAP/XML-RPC APIを使用することです。

GUI のテスト (たとえば、自動化されたクロスブラウザー テスト) を含むある種のエンド ツー エンド テストを実行しようとしている場合を除き、実際にbuttons とsをいじる理由はありません。textarea

于 2012-07-23T11:51:14.187 に答える