---
title: 26-05-21_初めてのPython勉強会
tags: 
author: [まさやん](https://image.docswell.com/user/8181214906)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/DJY4DWGG7M.jpg?width=480
description: 26-05-21_初めてのPython勉強会 by まさやん
published: May 21, 26
canonical: https://image.docswell.com/s/8181214906/K3JEGM-2026-05-21-183307
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/DJY4DWGG7M.jpg)

初めてのPython勉強会
タスク管理ツールAsanaをPythonで操作してみた
2026年5月21日(木) まさやん


# Page. 2

![Page Image](https://bcdn.docswell.com/page/YJ9PL2WX73.jpg)

自己紹介
⚫ 名前：まさやん
⚫ 仕事：営業支援を行う部門で業務改善
⚫ ITサービス活用歴
2022年：サイト管理者になったため、SharePoint Online学習
2023年：Power Apps、Power Automateを活用してアプリを展開
2024年：Power Automate for Desktop、Power Apps活用
2025年：BI活用（ETL：Python）
2026年：Power Automate for Desktopの改善提案
@Masayan_power
⚫最近はまっていること
マインドフルネス瞑想
（C）XXXXXX INC. All Rights Reserved.


# Page. 3

![Page Image](https://bcdn.docswell.com/page/LJLM8YPMER.jpg)

目次
1. Asanaとは
• 概要
• Asanaの構成
• 操作のデモ
2. Asana-APIとは
• Asana-APIとは
• Asanaライブラリ追加（Python）
• トークンID取得
• 代表的な関数
• IDの取得
• 操作のデモ
（C）XXXXXX INC. All Rights Reserved.
3


# Page. 4

![Page Image](https://bcdn.docswell.com/page/47MY6N467W.jpg)

注意事項
個人的見解や認識違いが含まれている場合が
ありますので、その場合はご指摘ください。
また、資料は26年5月時点の内容になります。
（C）XXXXXX INC. All Rights Reserved.


# Page. 5

![Page Image](https://bcdn.docswell.com/page/P7R9PDWNE9.jpg)

目次
1. Asanaとは
• 概要
• Asanaの構成
• 操作のデモ
2. Asana-APIとは
• Asana-APIとは
• Asanaライブラリ追加（Python）
• トークンID取得
• 代表的な関数
• IDの取得
• 操作のデモ
（C）XXXXXX INC. All Rights Reserved.
5


# Page. 6

![Page Image](https://bcdn.docswell.com/page/3JK9Y2DLJD.jpg)

概要
Asanaはタスクやプロジェクトを管理するためのツールです。
①仕事の見える化ができる。
②コラボレーションがスムーズ
③進捗管理と改善に繋げやすい。
Power Apps等ローコードツールでカスタムアプリを作らなくても
Asanaを使えばタスク管理ができる。
（C）XXXXXX INC. All Rights Reserved.
6


# Page. 7

![Page Image](https://bcdn.docswell.com/page/8EDKGQYM7G.jpg)

Asanaの構成
5つの構成がAsanaではあります。
階層
GOALS
内容
組織全体やチーム全体の包括的な
優先事項を現す目標を管理
PORTFOLIOS
関連するプロジェクトをグループ化する
コンテナ
PROJECTS
特定の取り組みに関連する仕事を整理
管理するためのもの
TASKS
SUBTASKS
プロジェクト内の個々のアクションアイテム
タスク内の小さな作業単位
Asana の仕組み
PROJECTはStarterプラン(有償)から
PORTFOLIOS、GOALSはAdvancedプラン(有償)から使用可能
（C）XXXXXX INC. All Rights Reserved.
7


# Page. 8

![Page Image](https://bcdn.docswell.com/page/2JVV4Q3PJQ.jpg)

デモします。


# Page. 9

![Page Image](https://bcdn.docswell.com/page/5EGL1W3QJL.jpg)

目次
1. Asanaとは
• 概要
• Asanaの構成
• 操作のデモ
2. Asana-APIとは
• Asana-APIとは
• Asanaライブラリ追加（Python）
• トークンID取得
• 代表的な関数
• IDの取得
• 操作のデモ
（C）XXXXXX INC. All Rights Reserved.
9


# Page. 10

![Page Image](https://bcdn.docswell.com/page/4JQYD35W7P.jpg)

Asana-APIとは
人がしているAsanaの操作を、プログラムから行う仕組み
Asana-API Reference
Goals、Portfolilos、Projects、Tasksを発見。
Tasksを展開して、複数タスクを取得する方法とそのPythonコードを確認。
（C）XXXXXX INC. All Rights Reserved.
10


# Page. 11

![Page Image](https://bcdn.docswell.com/page/LJ1YRGK5EG.jpg)

Asanaライブラリ追加（Python）
仮想環境上でpip install asanaと入力してAsanaライブラリをPythonに追加
Pip listでasana 5.2.4が表示されることを確認。
（C）XXXXXX INC. All Rights Reserved.
11


# Page. 12

![Page Image](https://bcdn.docswell.com/page/GJWG1KDW72.jpg)

トークンIDを取得
デベロッパーコンソールを表示から、個人アクセストークンを取得
①ユーザマーク→「 設定」をクリック
（C）XXXXXX INC. All Rights Reserved.
②アプリ→デベロッパーコンソール表示
③トークンを新規作成
→トークン名入力→トークンを作成
12


# Page. 13

![Page Image](https://bcdn.docswell.com/page/Y76WMZQ67V.jpg)

トークンIDを取得
デベロッパーコンソールを表示から、個人アクセストークンを取得
&lt;Asana APIを呼び出すためのコード４行＞※必ず必要
# Asana APIを呼び出すための準備
import asana
# Python SDK(python-sdk-5)読込
configuration = asana.Configuration()
# API接続設定用のオブジェクト作成
configuration.access_token = &#039;&lt;TOKEN&gt;&#039;
# Asanaにアクセスする認証情報設定
api_client = asana.ApiClient(configuration) # HTTP通信を行うクライアント生成
④トークンの「コピー」ボタンを押下
⑤&lt;TOKEN&gt;を置換え
Visual Code Editorなどを使用してTokenを置き換え
（C）XXXXXX INC. All Rights Reserved.
13


# Page. 14

![Page Image](https://bcdn.docswell.com/page/G75MZWR574.jpg)

代表的な関数（get_tasks_for_project）
get_task_for_project関数…プロジェクトから複数タスクを取り出す
Asana公式ページ
引数
No
第1(必須)
第2(任意)
指定
project_gid
opts
内容
備考
プロジェクトID
プロジェクトIDの取得方法は別途スライドに記載
opt_fields
取得するフィールド※name, gid等
custom_fieldsでカスタムフィールドも取得可能
completed_since
Now または日時(UTC)
Nowで未完了のタスクのみ。指定日時以降に完了したタスク
limit
取得件数※50等
取得する件数
opt_pretty
true または false
trueで適切な改行やインデントを挿入。falseで挿入無し
サンプル
戻り値
# Tasks APIオブジェクト生成
tasks_api = asana.TasksApi(api_client)
# プロジェクトに属するタスクを取得
# 各タスクのnameとgidだけを取り出してtasksに格納
tasks = tasks_api.get_tasks_for_project(
&#039;project_gid
opts={&quot;opt_fields&quot;: &quot;name, gid&quot;}
)
tasks = [
{
&quot;gid&quot;: &quot;1111111111&quot;,
&quot;name&quot;: &quot;設計レビュー&quot;
},
{
&quot;gid&quot;: &quot;2222222222&quot;,
&quot;name&quot;: &quot;実装&quot;
},
{
&quot;gid&quot;: &quot;3333333333&quot;,
&quot;name&quot;: &quot;テスト&quot;
}
例：Tasks[0][name]などでアクセス可能。
]
※この場合は、設計レビュー
（C）XXXXXX INC. All Rights Reserved.
14


# Page. 15

![Page Image](https://bcdn.docswell.com/page/DEY4DW2GJM.jpg)

代表的な関数（update_task）
update_task関数…既に存在するタスクの項目を更新する
No
指定
Asana公式ページ
内容
備考
第1(必須)
data
更新するフィールドと更新内容
※assignee、due_on、noteなどの標準フィールドのほかカスタムフィールド
カスタムフィールドID別途スライド記載
第2(必須)
task_gid
タスクID
タスクIDは別途スライドに記載
第3(任意)
opt_fields
取得するフィールド
通常は{}で省略
# 既存タスクのフィールドとカスタムフィールドを更新
updated_task = tasks_api.update_task(
{ &quot;data&quot;: {
&quot;assignee&quot;: &quot;charge_ID&quot;,
&quot;due_on&quot;: &quot;2026-05-21&quot;,
&quot;notes&quot;: &quot;TeamsトリガーとTeamsアクション学習する&quot;,
&quot;custom_fields&quot;: {
&quot;Progress_Field_ID&quot;: &quot;SingleOptionID&quot;,
&quot;Tool_Field_ID&quot;: [&quot;MultiOptionID1&quot;, &quot; MultiOptionID2&quot;],
&quot;Time_Field_ID&quot;: 210,
&quot;Risk_Field_ID&quot;: &quot;Python勉強不足&quot;,
&quot;Update_Field_ID&quot;: {&quot;date&quot;: &quot;2026-05-10&quot; },
}}
},task_ID&quot;,&quot;opt_fields&quot;
)
（C）XXXXXX INC. All Rights Reserved.
15


# Page. 16

![Page Image](https://bcdn.docswell.com/page/YE9PL2KXJ3.jpg)

IDの取得
Asanaには管理する情報（例：タスク）に一意の番号＝IDが付いていて
Asana-APIではIDを定義する。
プロジェクトには
プロジェクトIDが存在
（C）XXXXXX INC. All Rights Reserved.
タスクにはタスクIDが存在
選択肢には選択子IDが存在
担当者には担当者IDが存在
カスタムフィールドには
カスタムフィールドIDが存在
16


# Page. 17

![Page Image](https://bcdn.docswell.com/page/4JMY6N26JW.jpg)

IDの取得（プロジェクトID・タスクID）
プロジェクトID、タスクIDはタスクのURLリンクから取得する。
タスクを右クリック
タスクのリンクをコピーをクリック
URLリンク：https://app.asana.com/1/XXXXXXXXXXXXXXXX/project/XXXXXXXXXXXXXXXX/task/XXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXは数字
（C）XXXXXX INC. All Rights Reserved.
プロジェクトID
（project/の後）
タスクID
（task/の後）
17


# Page. 18

![Page Image](https://bcdn.docswell.com/page/PEXQ31V8JX.jpg)

IDの取得（担当者ID）
担当者IDはプロフィール表示URLから取得する。
URLを確認
丸アイコンにマウス
カーソルを合わせる
プロフィールを表示を
クリック
タスクのリンクをコピーをクリック
URL：https://app.asana.com/1/XXXXXXXXXXXXXXXX/profile/XXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXは数字
（C）XXXXXX INC. All Rights Reserved.
担当者ID
（profile/の後）
18


# Page. 19

![Page Image](https://bcdn.docswell.com/page/3EK9Y2QLED.jpg)

IDの取得（カスタムフィールドID）
カスタムフィールドIDはURLをたたいて取得する。
→ここはPython API内で動的に取得する方法を考えてみます。
URL：https://app.asana.com/api/1.0/tasks/XXXXXXXXXXXXXXXX?opt_fields=custom_fields.gid,custom_fields.name
タスクID
（tasks/の後）
XXXXXXXXXXXXXXXXは数字
プリティプリントにチェック
ファイル名を指定して実行に上記URLを入力
gid…カスタムフィールドID
Name…タスク名
（C）XXXXXX INC. All Rights Reserved.


# Page. 20

![Page Image](https://bcdn.docswell.com/page/L73W94P675.jpg)

IDの取得（カスタムフィールドの選択肢ID）
カスタムフィールドの選択肢IDはURLをたたいて取得する。
→ここはPython API内で動的に取得する方法を考えてみます。
URL：https://app.asana.com/api/1.0/tasks/XXXXXXXXXXXXXXXX?opt_fields=custom_fields.name,custom_fields.enum_options
XXXXXXXXXXXXXXXXは数字
タスクID
（tasks/の
後）
プリティプリントにチェック
ファイル名を指定して実行に上記URLを入力
gid…カスタムフィールドID
Name…タスク名
（C）XXXXXX INC. All Rights Reserved.


# Page. 21

![Page Image](https://bcdn.docswell.com/page/57GL1WYQEL.jpg)

デモします。


# Page. 22

![Page Image](https://bcdn.docswell.com/page/KJ4WZ1V171.jpg)

ご清聴ありがとうございました。


