Skip to content

Instantly share code, notes, and snippets.

@vadimii
Created February 17, 2013 14:43
Show Gist options
  • Save vadimii/4971753 to your computer and use it in GitHub Desktop.
Save vadimii/4971753 to your computer and use it in GitHub Desktop.
Read Asana's task stories
# -*- coding: utf-8 -*-
import json
import requests
ASANA_API_URL = 'https://app.asana.com/api/1.0'
ASANA_AUTH = ('qhXkFMH.GSCXOSYJbKfOd2U26NqaQxNf', '')
PROJECTS = {
u'Лифт в будущее': {
'id': 1493261729734,
u'Основные': 1529667824764,
u'Входящие': 2036726077591,
u'Ошибки': 3006377241328
}
}
def tasks(projid):
params = {'base': ASANA_API_URL, 'project': projid}
url = '{base}/projects/{project}/tasks'.format(**params)
return get_asana_json(url)
def stories(taskid):
params = {'base': ASANA_API_URL, 'task': taskid}
url = '{base}/tasks/{task}/stories'.format(**params)
return get_asana_json(url)
def get_asana_json(url):
headers = {'Content-Type': 'application/json; charset=utf-8'}
response = requests.get(url, headers=headers, verify=True, auth=ASANA_AUTH)
if response.status_code == 200:
return response.json()
if __name__ == "__main__":
projid = PROJECTS[u'Лифт в будущее'][u'Входящие']
tasks_data = tasks(projid)['data']
all_stories = []
for t in tasks_data:
task_stories = stories(t['id'])['data']
for s in task_stories:
s['task'] = t
all_stories.extend(task_stories)
js = json.dumps(all_stories, sort_keys=True, indent=4)
with open('asana.log', 'wb') as f:
f.write(js.encode('utf-8'))
print(js)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment