Je suis en train de jouer autour, essayer d'écrire un peu de code pour utiliser le http://tr.im Api (http://tr.im/api/) pour raccourcir une URL.
Après la lecture de http://docs.python.org/library/urllib2.html, j'ai essayé:
TRIM_API_URL = 'http://api.tr.im/api'
auth_handler = urllib2.HTTPBasicAuthHandler()
auth_handler.add_password(realm='tr.im',
uri=TRIM_API_URL,
user=USERNAME,
passwd=PASSWORD)
opener = urllib2.build_opener(auth_handler)
urllib2.install_opener(opener)
response = urllib2.urlopen('%s/trim_simple?url=%s'
% (TRIM_API_URL, url_to_trim))
url = response.read().strip()
réponse.code 200 (je pense qu'il devrait être 202). l'url est valide, mais l'authentification HTTP de base ne semble pas avoir fonctionné, parce que le URL raccourcie n'est pas dans ma liste d'Url (à http://tr.im/?page=1).
Après la lecture de http://www.voidspace.org.uk/python/articles/authentication.shtml#doing-it-properly J'ai aussi essayé:
TRIM_API_URL = 'api.tr.im/api'
password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
password_mgr.add_password(None, TRIM_API_URL, USERNAME, PASSWORD)
auth_handler = urllib2.HTTPBasicAuthHandler(password_mgr)
opener = urllib2.build_opener(auth_handler)
urllib2.install_opener(opener)
response = urllib2.urlopen('http://%s/trim_simple?url=%s'
% (TRIM_API_URL, url_to_trim))
url = response.read().strip()
Mais j'obtiens les mêmes résultats. (la réponse.le code est 200 et l'url est valide, mais pas enregistré dans mon compte à l' http://tr.im/.)
Si j'utilise des paramètres de chaîne de requête à la place de l'authentification HTTP de base, comme ceci:
TRIM_API_URL = 'http://api.tr.im/api'
response = urllib2.urlopen('%s/trim_simple?url=%s&username=%s&password=%s'
% (TRIM_API_URL,
url_to_trim,
USERNAME,
PASSWORD))
url = response.read().strip()
...alors, non seulement est une url valide, mais c'est inscrit dans mes tr.compte de messagerie instantanée. (Si réponse.le code est toujours de 200.)
Il doit y avoir quelque chose de mal avec mon code si (et pas tr.im API), parce que
$ curl -u yacitus:xxxx http://api.tr.im/api/trim_url.json?url=http://www.google.co.uk
...retourne:
{"trimpath":"hfhb","reference":"nH45bftZDWOX0QpVojeDbOvPDnaRaJ","trimmed":"11\/03\/2009","destination":"http:\/\/www.google.co.uk\/","trim_path":"hfhb","domain":"google.co.uk","url":"http:\/\/tr.im\/hfhb","visits":0,"status":{"result":"OK","code":"200","message":"tr.im URL Added."},"date_time":"2009-03-11T10:15:35-04:00"}
...et l'URL n'apparaît pas dans ma liste d'Url sur http://tr.im/?page=1.
Et si je lance:
$ curl -u yacitus:xxxx http://api.tr.im/api/trim_url.json?url=http://www.google.co.uk
...encore une fois, j'obtiens:
{"trimpath":"hfhb","reference":"nH45bftZDWOX0QpVojeDbOvPDnaRaJ","trimmed":"11\/03\/2009","destination":"http:\/\/www.google.co.uk\/","trim_path":"hfhb","domain":"google.co.uk","url":"http:\/\/tr.im\/hfhb","visits":0,"status":{"result":"OK","code":"201","message":"tr.im URL Already Created [yacitus]."},"date_time":"2009-03-11T10:15:35-04:00"}
Remarque le code est 201, et le message est "tr.im URL Déjà Créé [yacitus]."
Je ne dois pas être en train de faire l'authentification HTTP de base correctement (à essayer). Pouvez-vous repérer mon problème? Peut-être que je devrais regarder et de voir ce qui est envoyé sur le fil? Je n'ai jamais fait ça avant. Sont là Python Api que je peux utiliser (peut-être dans apb)? Ou est-il un autre outil (de préférence pour Mac OS X) je peux utiliser?