2016-05-12 27 views
0

Ich versuche, das Beispiel auf der Confluence-REST-API-Python-Site auszuführen, um Kommentare zu einer Wiki-Seite hinzuzufügen. Alles bis parentPage funktioniert (so wie es die richtige Seite von unserem Intranet-Wiki bekommt), aber wenn ich den requests.post ausführe, wird der gefundenen Seite kein Kommentar hinzugefügt. Stattdessen druckt printResponse (r) alle Seiten im Wiki aus (nicht die Seite, die ich gefunden habe).Confluence-API zum Erstellen von Kommentaren in Python

Ich habe das folgende Skript:

#!/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

Haben Sie versucht, 'das Ändern von Daten = pageData' zu' data = json.dumps (Pagedata) 'als [Dokumentation] (https://developer.atlassian.com/confdev/confluence-rest- api/confluence-rest-api-examples # ConfluenceRESTAPIExamples-Addacommenttoapage (python)) scheint es als String zu haben –

+0

Ja, das war, was ich vorher hatte, und es ändert nichts. – PS376

Antwort

0

ich die Lösung hier: How do you post a comment to Atlassian confluence using their REST api?. Sie müssen im Grunde Ihr container Tag verlängern. In der Confluence-Dokumentation wird dies nicht erwähnt. :(

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