Доступ Highrise's API с Python?
Вопрос
Как я могу получить доступ к 37 сигналам API Highrise с Python? Нашли обертки для PHP / Ruby, но не Python. Я сейчас пишу свой собственный, у кого-нибудь есть совет по поводу первого препятствия аутентификации с Python?
Решение
Я написал (очень пишу, действительно) Highrise API обертка для Python. Он использует объекты Python для каждого из классов Highrise и работают много как 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/pynise.
Или установить его из Pypi:
$ sudo pip install pyrise
Другие советы
Я просто решил эту проблему, когда я наткнулся на ваш вопрос. Вот то, что я всю взломул вместе. Это не красиво (пока), но это работает. Я не знаю Pycurl и после того, как посмотрел на это на некоторое время, я вернулся в Urllib2. Highrise использует базовую аутентификацию, поэтому вам не нужно использовать curl, вы можете использовать Urllib2. Вам просто нужно пройти все шаги PWORD Manager. Выходной файл представляет собой длинный XML-файл всех всех компаний, либо людей в зависимости от того, какой URL вы вставляете. Если вы хотели только одного человека, вы могли бы сделать что-то вроде «http ...... / luited / 123.xml» или 'http ...... / luited / 123-fname-lname.xml' (как вы видите В URL-адреса, когда вы на самом деле переходите к контакту в Highrise с добавлением .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
Любые отзывы или предложения на это Код будет полезен!
Видеть здесь о том, как сделать базовую аутентификацию. Также поддерживает IIRC Urllib http://user:password@example.com
URL.
Я просто искал код PHP одного из PHP API обертки и я вижу, что они используют завиток; так ты искал пикурл ??
О аутентификации Вот пример, с которым вы можете начать (оно не тестировано) ...
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)