質問

Pythonを使用して37の信号HighRiseのAPIにアクセスするにはどうすればよいですか? PHP/Rubyのラッパーを見つけましたが、Pythonではありません。私は今自分自身を書いています、誰かがPythonで最初の認証ハードルを乗り越えることについてアドバイスをしていますか?

役に立ちましたか?

解決

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

他のヒント

あなたの質問につまずいたとき、私はただこの問題に取り組んでいました。これが私がこれまでにハッキングしたものです。それはきれいではありませんが、それは機能します。私はPycurlを知りません、そして、しばらくそれを見た後、私はurllib2に戻りました。 HighRiseは基本認証を使用するため、urllib2を使用できるCurlを使用する必要はありません。すべてのPWORDマネージャーの手順を実行する必要があります。出力は、挿入するURLに応じて、すべての会社または人のいずれかの長いXMLファイルです。 1人だけが必要な場合は、「http ....../people/123.xml」または「http ....../people/123-fname-lname.xml」のようなことをすることができます(あなたが見るようにURLで、実際に.xmlを追加してHighriseで連絡先に移動します)。

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

フィードバックや提案 これ コードが役立つでしょう!

見る ここ 基本認証の実行方法について。また、iirc urllibサポート http://user:password@example.com URL。

私はただのPHPコードを見ていました PHP APIラッパー そして、彼らはカールを使用していることがわかります。それで、あなたは見ましたか 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)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top