2016-05-12 168 views
0

我試圖在Confluence REST API Python站點上運行示例以向Wiki頁面添加註釋。直到parentPage工作(直到它從我們的Intranet wiki中獲得正確的頁面),但是當我運行requests.post時,它實際上並沒有爲找到的頁面添加註釋。而是printResponse(r),打印出wiki中的所有頁面(不是我找到的頁面)。Confluence API在Python中創建註釋

我有以下腳本:

#!/usr/bin/python 
import requests, json 
base_url = 'http://intranet.company.com/rest/api/content' 
username = 'username' 
password = 'password' 
def printResponse(r): 
    print '{} {}\n'.format(json.dumps(r.json(), sort_keys=True, indent=4, separators=(',', ': ')), r) 
r = requests.get(base_url, 
    params={'title' : 'Space M Homepage'}, 
    auth=(username, password)) 
printResponse(r) 
parentPage = r.json()['results'][0] 
pageData = {'type':'comment', 'container':parentPage, 
    'body':{'storage':{'value':"<p>New comment!</p>",'representation':'storage'}}} 
r = requests.post(base_url, 
    data=json.dumps(pageData), 
    auth=(username,password), 
    headers=({'Content-Type':'application/json'})) 
printResponse(r) 
+0

你嘗試改變'數據= pageData'到'數據= json.dumps(pageData)'作爲[文檔】(https://developer.atlassian.com/confdev/confluence-rest- api/confluence-rest-api-examples#ConfluenceRESTAPIExamples-Addacommenttoapage(python))似乎把它作爲一個字符串。 –

+0

是的,這是我以前的想法,它不會改變任何東西。 – PS376

回答

0

我發現這裏的解決方案:How do you post a comment to Atlassian confluence using their REST api?。你基本上需要擴展你的container標籤。 Confluence文檔根本沒有提到這一點。 :(

pageData = {'type':'comment', 
    'container':{'id': str(parentPage), 
     'type':'page', 
     'status': 'current' 
    }, 
    'body':{ 
     'storage':{ 
      'value':"<p>New comment!</p>", 
      'representation':'storage' 
     } 
    } 
}