2017-06-27 2 views
0

Hallo ich kann nicht Benutzer in vTiger 7 programmatisch erstellen. Ich bin mit Python und erhalte die folgenden Fehler in Reaktion -kann nicht Benutzer in vtiger von api erstellen

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

ich etwas denke, falsch mit id weicht i-Server senden. Dies ist mein Code:

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()) 

ich viele verschiedene ID versucht hatte, zum Beispiel meine zugewiesen ID senden, die ich vom Server erhalten. Meine Rolle in vtiger erlaubt mir, Benutzer zu erstellen. Vielleicht muss ich ID ändern. Außerdem hatte ich mich erfolgreich eingeloggt und bekam eine Antwort. Ich kann Kontakt ohne Probleme erstellen, aber ich kann Benutzer nicht erstellen. Ich bekomme immer -Permission zur Ausführung der Operation wird für ID verweigert '. Vielleicht sollte ich etwas in assigned_id Feld oder userId senden? Bitte helfen Sie mir, dieses Problem zu lösen.

+0

Ich glaube nicht, dass die API Benutzer Erstellung ermöglicht. –

+0

gibt es eine Möglichkeit, Benutzer programmgesteuert zu erstellen? – egorkh

+0

auch, dann versuche ich Konto zu erstellen ich bekomme - {u'code ': u'ACCESS_DENIED', u'message ': u'Permission zur Durchführung der Operation verweigert'}, u'success ': False} – egorkh

Antwort

0

tatsächliche Prozess-API-Aufruf
1) Zunächst einmal GetChallengeResult (challenge Token)
2) Sie Konto auf vtiger bereits userAccessKey müssen uns brauchen.
3) Jetzt müssen Sie diese beiden Schlüssel verketten und dann müssen Sie diese verkettete Zeichenfolge in MD5 Hash-Code 4) Und um einen API-Aufruf müssen Sie übergeben "SessionName" => $ SessionId, "Operation" => 'create' Dabei ist sessionName derjenige, den Sie von vtiger erhalten, wenn Sie sich mit diesem generierten Schlüssel (md5) erfolgreich anmelden.

Ich habe einen HTTP-Client für vtiger 7 geschrieben, um API-Aufrufe zu machen, aber mit PHP nicht Python. Ich kann diesen Code posten, wenn Sie möchten. Aber probiere die obigen Schritte zuerst mit Python aus.

Ich habe diese Vtiger Link verwendet, um HTTP-Client-Anwendung zu erstellen, um API-Aufrufe vtiger 7 zu machen. Wie wir wissen, ist die vtiger API nicht vollständig RESTful API und nicht mit oAuth-Spezifikation als ihre komplexe komplexe API-Aufrufe schwierig.

+0

Oh, danke für deine Antwort. Ich habe schon alle diese Schritte gemacht. Ich habe es einfach nicht zu meiner Beschreibung hinzugefügt, also bearbeite ich meine Frage. Bitte posten Sie Ihren Code, weil ich immer noch nicht bekommen kann -Permission zur Durchführung der Operation wird für ID abgelehnt – egorkh

+0

Problem ist mein Code ist nicht mit mir im Moment, es ist auf meinem Büro-Desktop-PC. Lass mich sehen, ob dieser PC eingeschaltet ist. Ich werde Ihren aktualisierten Beitrag sehen und sehen, was fehlt, geben Sie mir eine Chance. – webDev

+0

ok, vielen Dank – egorkh

Verwandte Themen