2016-05-12 2 views
0

J'essaye de lancer l'exemple sur le site Confluence REST API Python pour ajouter des commentaires à une page wiki. Tout jusqu'à ce que parentPage fonctionne (comme dans, il obtient la bonne page de notre wiki intranet), mais quand j'exécute le request.post, il n'ajoute pas vraiment un commentaire à la page trouvée. Au lieu de printResponse (r), imprime toutes les pages du wiki (pas la page que j'ai trouvée).API Confluence pour créer des commentaires en Python

J'ai le script suivant:

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

Avez-vous essayé de changer 'data = pageData' à' data = json.dumps (PageData) 'comme la [documentation] (https://developer.atlassian.com/confdev/confluence-rest- api/confluence-rest-api-exemples # ConfluenceRESTAPIExamples-Addacommenttoapage (python)) semble l'avoir sous forme de chaîne –

+0

Oui, c'était ce que je l'avais avant, et ça ne change rien. – PS376

Répondre

0

J'ai trouvé la solution ici: How do you post a comment to Atlassian confluence using their REST api?. Vous devez essentiellement étendre votre tag container. La documentation de Confluence n'en parle pas du tout. :(

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