2
1

More than 1 year has passed since last update.

Pythonでesa.ioのAPIを触る

Last updated at Posted at 2021-10-19

はじめに

ドキュメント共有サービスであるesa.ioではAPIを公開していて、APIを通して記事やコメントの取得や作成、スターをつけたりけしたり等広くesa.ioの機能を利用できます。

今回は、pythonでesa.ioのAPIを触ってみましょう!

インストール

pythonで作成されたesa APIのクライアントライブラリを利用して、APIにアクセスします。
ライブラリ: piyo

pip install piyo

APIを叩いてみる

とりあえず、クライアントをnewします。
<access_token><team_name>は自分のアクセストークンとチーム名に置き換えてください。
Clientにアクセストークンを渡す代わりに、環境変数のESA_ACCESS_TOKENにアクセストークンをセットしても大丈夫です。

from piyo import Client

def main():
    client = Client(access_token='<access_token>', current_team='<team_name>')

if __name__ == '__main__':
    main()

後はclientのメソッドから、各種エンドポイントにアクセスできます。
今回は基本的な使い方の確認が目的なので、一部の機能のみ紹介します。

記事一覧

    posts = client.posts()
    print(posts)
    # => {'posts':[...] 'prev_page': None, 'next_page': 2, 'total_count': 134, 'page': 1, 'per_page': 20, 'max_per_page': 100}

記事詳細情報

    post = client.post(1)
    print(post)
    # => {'number': 1, 'name': 'README.md', 'full_name': 'README.md', 'wip': False, 'body_md': ... }

記事作成

    post = client.create_post({"post": {"name": "hi!"}})
    print(post)
    # => {'number': 2031, 'name': 'hi!', 'full_name': 'hi!', 'wip': True, 'body_md': '', ...

記事更新

    post = client.update_post(post["number"], {"post": {"name": "updated test"}})
    print(post["name"])
    # => updated test

記事削除

    post = client.create_post({"post": {"name": "test"}})
    client.delete_post(post["number"])
    # => None

スター関連

    # 記事にスターをつける
    post = client.add_post_star(2007)
    print(post)
    # => None

    # 記事にスターをつけた人一覧
    stargazers = client.post_stargazers(2007)
    print(stargazers)
    # => {'stargazers': [{'created_at': ..., 'body': None, 'user': {'myself': True, ...

    # 記事につけたスターを取り消す
    client.delete_post_star(2007)
    # 記事にスターをつけた人一覧
    stargazers = client.post_stargazers(2007)
    print(stargazers)
    # => {'stargazers': [], 'prev_page': None, ...

チーム関連

    # チームの情報を取得する
    team = client.team()
    print(team)
    # => {'name': '...', 'privacy': 'closed', ...

    # メンバーの一覧を取得する
    members = client.members()
    print(members)
    # => 'members': [{'myself': False, 'name': ...

最後に

快適なesaライフを!

2
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
2
1