1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

RESTAPIでのConfluence自動投稿ボット作成でハマった話

Last updated at Posted at 2022-10-27

RESTAPIを使って、Confluenceに自動投稿するプログラムを作成した際にハマった話。

結論

httpじゃなくて、httpsで接続しよう!

経緯

Confluenceの公式のドキュメント。
2022年10月現在で、http接続での例が記載されている。
https://developer.atlassian.com/server/confluence/confluence-rest-api-examples/

記載例
curl -u admin:admin -X GET "http://localhost:8080/confluence/rest/api/content?title=myPage%20Title
&spaceKey=TST&expand=history" | python -mjson.tool

↑と同様にhttp接続で試すも、getメソッドでページの情報はとれるのに、postでのページの投稿はうまくいかない

原因特定の経緯

最初はPythonでコーディングしており、動作確認はPythonのrequestsライブラリを使ったレスポンスを表示することで行っていた。
https://dot-blog.jp/news/python-requests-redirect-url-status-code-get/
ここの記事にある通り、Pythonのレスポンスはリダイレクト後の情報のみを表示する。
ここがつまづいたポイントだった。

上記のことを知らないまま(原因がよくわかっていないまま)、とりあえず原因特定のためPythonではなく、curlを使うことに。

$ curl -u admin:admin http://XXXXXXXX/confluence/rest/api/content/scan?spaceKey=FS&limit=2&expand=history 

上記コマンドを打つと、以下レスポンスが。

HTTP/1.1 301 Moved Permanently
location: https:/XXXXXXXX/confluence/rest/api/content
date: Thu, 27 Oct 2022 XX:XX:XX GMT
server: xxxxx
content-length: 0

これにより、https接続すべきことに気付き、原因特定に至りました。
getはうまくいくけど、postはうまくいかない、という挙動にも振り回され、原因特定に時間がかかってしまいました。
Pythonのrequestsのクセを知れてよかったですが。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?