Skip to content

Instantly share code, notes, and snippets.

@BedrosovaYulia
Last active July 25, 2019 08:45
Show Gist options
  • Save BedrosovaYulia/0a3e0fd5dee22c3a6e3a304edeeedf80 to your computer and use it in GitHub Desktop.
Save BedrosovaYulia/0a3e0fd5dee22c3a6e3a304edeeedf80 to your computer and use it in GitHub Desktop.
AWS Lambda & Bitrix24 example1
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