Last active
July 25, 2019 08:45
-
-
Save BedrosovaYulia/0a3e0fd5dee22c3a6e3a304edeeedf80 to your computer and use it in GitHub Desktop.
AWS Lambda & Bitrix24 example1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import json | |
from botocore.vendored import requests | |
from urllib.parse import parse_qs | |
def lambda_handler(event, context): | |
data=parse_qs(event['params'])#параметры приходят согласно настройкам меппинга в гетавее | |
event=data['event'][0] | |
key=data['auth[application_token]'][0] | |
#если это наш первый Битрикс24 стучится и если это событие создания нового лида в нем | |
if (event=='ONCRMLEADADD' and key=='*********************'): | |
lid_id=data['data[FIELDS][ID]'][0] | |
#запросим из первого Б24 остальные параметры лида | |
response = requests.get('https://bedrosovayulia.bitrix24.com/rest/1/****************/crm.lead.get',{"id":lid_id}) | |
lead_data=response.json() | |
#тут ищу более изящное решение - пока пусть будет так | |
lead_data2 = { | |
"fields" : { | |
"NAME" : lead_data['result']['NAME'], | |
"TITLE" : lead_data['result']['TITLE'], | |
"PHONE" : dict(), | |
"EMAIL" : dict() | |
}, | |
'params' : {"REGISTER_SONET_EVENT" : "Y"} | |
} | |
try: | |
phone={ | |
"VALUE" : lead_data['result']['PHONE'][0]['VALUE'], | |
"VALUE_TYPE" : lead_data['result']['PHONE'][0]['VALUE_TYPE'] | |
} | |
lead_data2['fields']['PHONE']['0']=phone | |
except: | |
pass | |
try: | |
email={ | |
"VALUE" : lead_data['result']['EMAIL'][0]['VALUE'], | |
"VALUE_TYPE" : lead_data['result']['EMAIL'][0]['VALUE_TYPE'] | |
} | |
lead_data2['fields']['EMAIL']['0']=email | |
except: | |
pass | |
#создадим такой же лид во втором Битрикс24 | |
response = requests.get('https://b24-dawbtb.bitrix24.com/rest/1/************/crm.lead.add',http_build_query(lead_data2)) | |
result=response.json() | |
print(result) | |
return { | |
'statusCode': 200, | |
'body': json.dumps('Hello from Lambda!') | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment