Confluence API для создания комментариев в Python

Я пытаюсь запустить пример на сайте Confluence REST API Python, чтобы добавить комментарии на вики-страницу. Все, пока не работает parentPage (например, он получает правильную страницу из нашей внутренней вики), но когда я запускаю request.post, он фактически не добавляет комментарий к найденной странице. Вместо этого printResponse(r) распечатывает все страницы вики (не ту страницу, которую я нашел).

У меня есть следующий скрипт:

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

person PS376    schedule 12.05.2016    source источник
comment
Пробовали ли вы изменить data=pageData на data=json.dumps(pageData) в качестве documentation, по-видимому, содержит его в виде строки.   -  person Cory Shay    schedule 12.05.2016
comment
Да, это было то, что у меня было раньше, и это ничего не меняет.   -  person PS376    schedule 13.05.2016


Ответы (1)


Я нашел решение здесь: Как опубликовать комментарий к Atlassian Confluence с помощью REST API?. В основном вам нужно расширить свой тег container. Документация Confluence вообще не упоминает об этом. :(

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