代码之家  ›  专栏  ›  技术社区  ›  MikeN

用Python访问Highrise的API?

  •  0
  • MikeN  · 技术社区  · 14 年前

    如何使用Python访问37 signals Highrise的API?找到了PHP/Ruby的包装器,但没有找到Python。我现在正在写自己的文章,有人对如何克服Python认证的第一个障碍有什么建议吗?

    4 回复  |  直到 14 年前
        1
  •  4
  •   Jason Ford    13 年前

    我为Python编写了一个高层API包装器。它为每个高层类使用Python对象,工作方式与Django ORM非常相似:

    >>> 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()
    

    您可以从GitHub获取源代码: https://github.com/feedmagnet/pyrise

    或者从PyPI安装它:

    $ sudo pip install pyrise
    
        2
  •  1
  •   Doug    13 年前

    当我偶然发现你的问题时,我正在处理这个问题。这是我到目前为止一起砍掉的东西。虽然还不漂亮,但确实有效。我不认识Pycurl,看了一会儿后我回到urllib2。Highrise使用基本身份验证,因此不必使用CURL,您可以使用urllib2。你只需要完成普华永道经理的所有步骤。输出是所有公司或人员的一个长XML文件,具体取决于插入的URL。如果你只想要一个人,你可以做一些事情,比如“http……/people/123.xml”或者“http……/people/123 fname lname.xml”(就像你在url中看到的那样,当你真正去高层的一个联系人添加了.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
    

    任何反馈或建议 代码会有帮助的!

        3
  •  0
  •   Miki Tebeka    14 年前

    here 关于如何进行基本身份验证。也支持IIRC urllib http://user:password@example.com 网址。

        4
  •  0
  •   mouad    14 年前

    php API wrappers 我看到他们用卷发,你也看到了 pycurl ??

      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)