Pregunta

¿Cómo puedo acceder a la API de 37 señales de Highrise con Python? envolturas encontrados para PHP / Ruby, pero no Python. Estoy escribiendo mi propio ahora, alguien tiene consejos para conseguir el primer obstáculo de la autenticación con Python?

¿Fue útil?

Solución

Me escribió (escribo, en realidad) un envoltorio de API Highrise para Python. Utiliza objetos de Python para cada una de las clases de rascacielos y funciona mucho como el ORM de Django:

>>> from pyrise import *
>>> Highrise.server('my-server')
>>> Highrise.auth('api-key-goes-here')
>>> p = Person()
>>> p.first_name = 'Joe'
>>> p.last_name = 'Schmoe'
>>> p.save()

Se puede obtener el código fuente de GitHub: https://github.com/feedmagnet/pyrise

O instalarlo desde PyPI:

$ sudo pip install pyrise

Otros consejos

Sólo estaba frente a este problema cuando me topé con su pregunta. Aquí es lo que he hackeado juntos hasta ahora. No es bastante (aún), pero funciona. No sé pycurl y después de mirarlo durante un tiempo volví a urllib2. Alta subida utiliza la autenticación básica por lo que no tiene que utilizar CURL puede utilizar urllib2. Sólo tienes que ir a través de todos los pasos Pword Manager. La salida es un archivo XML largo de cualquiera de todas las empresas o las personas en función de la cual se inserta el URL. Si quería una sola persona que podría hacer algo como 'http ...... / personas / 123.xml' o 'http ...... / personas / 123-fnombre-lname.xml' (como se ve en la URL cuando intenta ir a un contacto de gran altura con el añadido .xml).

import ullib2    

PEOPLEurl = 'http://yourcompany.highrisehq.com/people.xml' #get all the people
# or 
COMPANYurl = 'http://yourcompany.highrisehq.com/company.xml' #get all companies

token = '12345abcd' #your token
password = 'X'

passmanager = urllib2.HTTPPasswordMgrWithDefaultRealm()
passmanager.add_password(None, PEOPLEurl, token, password)
authhandler = urllib2.HTTPBasicAuthHandler(passmanager)
opener = urllib2.build_opener(authhandler)
urllib2.install_opener(opener)
page = urllib2.urlopen(PEOPLEurl).read()

print page #this will dump out all the people contacts in highrise

Cualquier comentario o sugerencia sobre este código sería de gran ayuda!

aquí sobre cómo hacer la autenticación básica. También IIRC soportes urllib http://user:password@example.com URL.

Yo estaba mirando al código php de uno de los PHP API envoltorios y veo que utilizan rizo; por lo que has mirado a pycurl ??

acerca de la autenticación de aquí es un ejemplo de que se puede empezar con (que no está probado) ...

  import pycurl

  def on_receive(data):
      # process your data here
      pass

  def connetion(url, token)

      conn = pycurl.Curl()

      # Set Token.  
      conn.setopt(pycurl.USERPWD, "%s:x" % (token,)) 
      # the format TOKEN:x i get it from the PHP wrapper because usually the 
      # format should be USER:PASSWD so here i think they just use a token as
      # a USERname and they set the password to 'x'.

      conn.setopt(pycurl.URL, url)

      # Set the XML data to POST data.
      conn.setopt(pycurl.POSTFIELDS, XML_DATA)  

      # Add SSL.
      conn.setopt(pycurl.SSL_VERIFYPEER, 0)
      conn.setopt(pycurl.SSL_VERIFYHOST, 0)

      # Set function that will be called as soon as the data is received.
      conn.setopt(pycurl.WRITEFUNCTION, on_receive)

      # Perform the data transfer. 
      conn.perform() 

  if __name__ == '__main__':
      connection("http://yourcompany.highrisehq.com", your_token)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top