我正在尝试从下面的活动机会中获取所有联系人是我对SugarCRM API v4的请求
{
"session":"btcskfetq7sqshio3uv568d8c1",
"module_name":"Contacts",
"query":"contacts.id IN (
SELECT opportunities_contacts.contact_id
FROM opportunities_contacts
JOIN opportunities
ON opportunities_contacts.opportunity_id = opportunities.id
WHERE opportunities.sales_stage
NOT IN ('Closed Won','Closed Lost'))",
"order_by":"",
"offset":0,
"select_fields":[
"first_name",
"last_name",
"title",
"phone_home",
"phone_work",
"status",
"email"
],
"link_name_to_fields_array":null,
"max_results":0,
"deleted":0,
"favorites":false
}
我的查询在sugarCRM数据库的mysql workbench中工作正常,但API响应是:
{"name":"Access Denied","number":40,"description":"You do not have access"}
你能帮忙吗?
答案 0 :(得分:1)
要实现此目的,请在suagrcrm中编写自己的终点。
<?php
class AtRiskApi extends SugarApi
{
// This function is only called whenever the rest service cache file is deleted.
// This shoud return an array of arrays that define how different paths map to different functions
public function registerApiRest() {
return array(
'getAtRisk' => array(
// What type of HTTP request to match against, we support GET/PUT/POST/DELETE
'reqType' => 'GET',
// This is the path you are hoping to match, it also accepts wildcards of ? and <module>
'path' => array('Accounts', 'at_risk'),
// These take elements from the path and use them to populate $args
'pathVars' => array('', ''),
// This is the method name in this class that the url maps to
'method' => 'getAtRisk',
// The shortHelp is vital, without it you will not see your endpoint in the /help
'shortHelp' => 'Lists at risk accounts in the system',
// The longHelp points to an HTML file and will be there on /help for people to expand and show
'longHelp' => '',
),
);
}
function getAtRisk($api, $args)
{
// Start off with something simple so we can verify the endpoint is registered.
return 'burgers';
}
}
更多详情阅读本文: