SugarCRM v10 的导出方法 api

Export Methods for SugarCRM v10 api

我正在尝试调用 SugarCRM v10 api 以获取报告的输出,而无需登录到 Web 界面并单击导出按钮。我希望将此报告作为可以使用 python 和请求库写入 csv 格式的数据。

我可以成功进行身份验证并获得令牌,但无论我尝试什么,我得到的报告都是错误方法不存在,这意味着你不能在第二个结束时使用 /csv url 在此代码块中。

url = "https://mydomain.sugarondemand.com/rest/v10/oauth2/token"
payload = {"grant_type":"password","username":"ursername","password":"password","client_id":"sugar", "platform":"myspecialapp"}


r = requests.post(url, data=json.dumps(payload))

response = json.loads(r.text)

token = response[u'access_token']    
print 'Success! OAuth token is ' + token

#What export methods are available? ###################################

#WRONG url = "https://mydomain.sugarondemand.com/rest/v10/Reports/report_id/csv"
#Following paquino's suggestion I used Base64

url = "https://mydomain.sugarondemand.com/rest/v10/Reports/report_id/Base64"
headers = { "Content-Type" : "application/json", "OAuth-Token": token }

r = requests.get(url, headers=headers);

response = r.text.decode('base64')

print response`

我的问题是:通过 api 调用 SugarCRM 的 v10 api。

可以使用哪些导出方法

编辑:在请求中使用 Base64 url 不幸的是 returns 我不知道如何解析的 ab 对象...

%PDF-1.7
3 0 obj
<</Type /Page
/Parent 1 0 R
/MediaBox [0 0 792.00 612.00]
/Resources 2 0 R
/Contents 4 0 R>>
endobj
4 0 obj
<</Length 37217>>
stream
8.cܬR≈`ä║dàQöWºáW╙µ

报告 Api 接受 "Base64" 和 "Pdf"

Python SugarCRM REST 包装器 API v10

https://github.com/Feverup/pysugarcrm

快速入门

pip install pysugarcrm

from pysugarcrm import SugarCRM
api = SugarCRM('https://yourdomain.sugaropencloud.e', 'youruser', 'yourpassword')

# Return info about current user
api.me

# A more complex query requesting employees
api.get('/Employees', query_params={'max_num': 2, 'offset': 2, 'fields': 'user_name,email'})

{'next_offset': 4,
 'records': [{'_acl': {'fields': {}},
   '_module': 'Employees',
   'date_modified': '2015-09-09T13:40:32+02:00',
   'email': [{'email_address': 'John.doe@domain.com',
     'invalid_email': False,
     'opt_out': False,
     'primary_address': True,
     'reply_to_address': False}],
   'id': '12364218-7d79-80e0-4f6d-35ed99a8419d',
   'user_name': 'john.doe'},
  {'_acl': {'fields': {}},
   '_module': 'Employees',
   'date_modified': '2015-09-09T13:39:54+02:00',
   'email': [{'email_address': 'alice@domain.com',
     'invalid_email': False,
     'opt_out': False,
     'primary_address': True,
     'reply_to_address': False}],
   'id': 'a0e117c0-9e46-aebf-f71a-55ed9a2b4731',
   'user_name': 'alice'}]}

# Generate a Lead
api.post('/Leads', json={'first_name': 'John', 'last_name': 'Smith', 'business_name_c': 'Test John', 'contact_email_c': 'john@smith.com'})

from pysugarcrm import sugar_api

with sugar_api('http://testserver.com/', "admin", "12345") as api:
    data = api.get('/Employees', query_params={'max_num': 2, 'offset': 2, 'fields': 'user_name,email'})
    api.post('/Leads', json={'first_name': 'John', 'last_name': 'Smith', 'business_name_c': 'Test John', 'contact_email_c': 'john@smith.com'})

# Once we exit the context manager the sugar connection is closed and the user is logged out