2010-04-01 5 views
0

Comme gmail et la tâche api n'est pas disponible partout (par exemple: certaines entreprises bloquent gmail mais pas le calendrier), y a-t-il un moyen d'éliminer google task via l'interface web du calendrier?Webscraping Google tâches via Google Calendar

J'ai fait un userscript comme celui ci-dessous, mais je trouve trop fragile:

// List of div to hide 
idlist = [ 
    'gbar', 
    'logo-container', 
    ... 
]; 

// Hiding by id 
function displayNone(idlist) { 
    for each (id in idlist) { 
     document.getElementById(id).style.display = 'none'; 
    } 
} 
+0

Peut-être. Qu'avez-vous essayé? Désolé SO n'est pas un moteur 'requirements => code'. –

+0

J'ai essayé de faire un script greasmonkey/jquery qui .hide() toutes les divs de calendrier inutiles, mais je n'aime pas cette solution (son fragile). J'ai essayé de regarder le code google-calendar js, pour comprendre l'appel ajax, mais c'était trop compliqué. S'il y a un moyen plus simple/propre d'accéder à mes données ce serait génial. – ideotop

Répondre

0

je suggère l'analyse du flux Atom des calendriers que vous souhaitez voir. Vous pouvez obtenir les flux de calendriers individuels en sélectionnant Options Gear> Paramètres du calendrier, puis en choisissant l'onglet Calendriers et en sélectionnant le calendrier souhaité. Dans l'écran Détails du calendrier, vous pouvez obtenir un flux Atom (XML), un flux iCal ou un calendrier HTML/Javascript.

1

L'API Google Tasks est maintenant disponible. Vous pouvez obtenir une liste de vos tâches via une requête HTTP, résultat renvoyé dans JSON. Il y a une étape par exemple étape sur la façon d'écrire un Google Tasks webapp sur Google App Engine à

http://code.google.com/appengine/articles/python/getting_started_with_tasks_api.html

L'échantillon webapp ressemble à ceci:

from google.appengine.dist import use_library 
use_library('django', '1.2') 
from google.appengine.ext import webapp 
from google.appengine.ext.webapp import template 
from google.appengine.ext.webapp.util import run_wsgi_app 
from apiclient.discovery import build 
import httplib2 
from oauth2client.appengine import OAuth2Decorator 
import settings 

decorator = OAuth2Decorator(client_id=settings.CLIENT_ID, 
          client_secret=settings.CLIENT_SECRET, 
          scope=settings.SCOPE, 
          user_agent='mytasks') 


class MainHandler(webapp.RequestHandler): 

    @decorator.oauth_aware 
    def get(self): 
    if decorator.has_credentials(): 
     service = build('tasks', 'v1', http=decorator.http()) 
     result = service.tasks().list(tasklist='@default').execute() 
     tasks = result.get('items', []) 
     for task in tasks: 
     task['title_short'] = truncate(task['title'], 26) 
     self.response.out.write(template.render('templates/index.html', 
               {'tasks': tasks})) 
    else: 
     url = decorator.authorize_url() 
     self.response.out.write(template.render('templates/index.html', 
               {'tasks': [], 
               'authorize_url': url})) 


def truncate(string, length): 
    return string[:length] + '...' if len(string) > length else string 

application = webapp.WSGIApplication([('/', MainHandler)], debug=True) 


def main(): 
    run_wsgi_app(application) 

Notez que vous devez d'abord activer API Google Tasks sur la console API https://code.google.com/apis/console/b/0/?pli=1