无法通过api在vtiger中创建用户

时间:2017-06-27 19:29:09

标签: php python api vtiger vtigercrm

我无法以编程方式在vTiger 7中创建用户。我正在使用python并在响应中收到以下错误 -

{u'error': {u'code': u'ACCESS_DENIED',
  u'message': u'Permission to perform the operation is denied for id'},
 u'success': False}

我猜我发送给服务器的id有问题。 这是我的代码:

url='http://owl24.ru/webservice.php/'
username='weblanss'
values = {'operation':'getchallenge','username': username }
data = urllib.urlencode(values)
req = urllib2.Request('%s?%s' % (url,data))
response = urllib2.urlopen(req).read()
token = json.loads(response)['result']['token']
key = md5(token + accessKey)
tokenizedAccessKey = key.hexdigest()
values['accessKey'] = tokenizedAccessKey
values['operation']  = 'login'
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req).read()

values['sessionName'] = json.loads(response)['result']['sessionName']
values['userId'] =json.loads(response)['result']['userId']
values['operation'] = 'create'
values['elementType'] = 'Users'
data = urllib.urlencode(values)

dic = collections.OrderedDict([,('userId','19x12'),
        ('lastname', 'test_user2'),
('user_name','nam3'),('user_password','user_password'),('confirm_password','user_password'),('roleid','H1')])
dic = json.dumps(dic)
values['element']=dic
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
response = json.loads(response.read())

我尝试了很多不同的id,例如发送我从服务器获得的指定ID。我在vtiger中的角色允许我创建用户。也许我需要改变身份。此外,我已成功登录并获得响应。我可以毫无困难地创建联系人,但我无法创建用户。我总是得到-Permission执行操作被拒绝id'。也许我应该在assigned_id字段或userId中发送特殊内容? 请帮我解决这个问题。

1 个答案:

答案 0 :(得分:-1)

获取API调用的实际流程
1)首先你需要得到GetChallengeResult(挑战标记)
2)您在vtiger上的帐户已经拥有userAccessKey 3)现在你必须连接这两个键,然后你必须将这个连接的字符串哈希到MD5中 4)要进行api通话,您需要通过" sessionName" => $ sessionId,"操作" =>'创建'其中sessionName是您使用生成的密钥(md5)成功登录时从vtiger获得的那个。

我为vtiger 7编写了一个HTTP客户端来进行API调用但是使用PHP而不是Python。如果你愿意,我可以发布该代码。但是首先使用python自己尝试上面的步骤。

我使用此Vtiger Link创建HTTP客户端应用程序以进行API调用vtiger 7.我们知道vtiger API不是完全RESTful API,并且未按预期使用oAuth规范,因此很难进行复杂的API调用。