Передаем контакты из 1с в Битрикс24 через REST API
09.01.17 23:16

?????? ????? ??????????? ???? ?????????? ? ???????24. ??? ????? ??? ????????? client_id ? client_secret.  ??? ???? ???????????? ??? ???????????.

?????????? ???? ?????????? ????????? ????? ? ????????? ??????? "?????????? ?????????? ?????? API"

?????? ?? ?????????? ????? ???? ?????, ? ?????????? ??? ?? ?????.

?????? ???????????? ? ???????24


????????? ????????????????????()

	???? ?? (AccessToken = "" ??? RefreshToken = "" ??? RefreshTime = ????(1, 1, 1)) ?????
		
		???????;
		
	?????????;

 	
	ssl = ????? ????????????????????OpenSSL(
                ????? ?????????????????Windows(
                                ???????????????????????Windows.????????),
                ????? ????????????????????????????????Windows());   
                         
	?????????? = ????? HTTP??????????(
                            ????????????24, //"??????.bitrix24.ru",
							, // ????
							"
 Данный адрес e-mail защищен от спам-ботов, Вам необходимо включить Javascript для его просмотра.
 ", // ????????????
							"123456", // ??????
							, // ??????
                            5, // ??????? ? ????????
                            ssl // ?????????? HTTPS ??????????
                        );
						
						
	????????? = ????? ????????????;
	
	?????? = ????? HTTP??????("oauth/authorize/?client_id=" + <strong>client_id</strong>, ?????????);					
	????? = ??????????.????????(??????);
	
	
	// ???? ??? ???????????????
	???? ?????.???????????? = 302 ?????
		
		//? Location ????? code
		
		????????? = ???????????????????Get??????(?????.?????????.????????("Location"));
		Cookie = ?????.?????????.????????("Set-Cookie");
		??? = ????????????;
		
		
		???? ?????????.????????("code", ???) ?????
			
			// ????????? ??? ???????? access_token ? refresh_token
			
			?????????? = ????? HTTP??????????(
                            "oauth.bitrix.info",
							, // ????
							, // ????????????
							, // ??????
							, // ??????
                            5, // ??????? ? ????????
                            ssl // ?????????? HTTPS ??????????
                        );
						
			??????.????????????	= "oauth/token" + ???????????????????????????(???);	
			??????.?????????.????????("Cookie", Cookie);
			
			
			????? = ??????????.????????(??????);
			
			
			???? ?????.???????????? <> 200 ?????
				
				????????????????? "?????? ??? ????????? access_token"; 
				
			?????
				
				// ????????? ?????????? json
				json = ?????.?????????????????????();
				
				
				?????? = ????? ??????JSON;
				??????.????????????????(json);
				?????????????? = ?????????JSON(??????);
				
				// ???????? ????????? ???????????
				AccessToken  = ??????????????.access_token;
				RefreshToken = ??????????????.refresh_token;
				RefreshTime  = ???????????() + ??????????????.expires_in;
				
			
			?????????;
			
			
			
		?????
			
			????????????????? "?????? ??? ???????????, ??? ????????? code";
			
		?????????;
		
		
	?????????;

??????????????

??????? ???????????????????????????(???)
	
	// ??????? ????????? ? ?????? Get ???????
	??????? "/?" + "grant_type=authorization_code" + "&" + 
		"client_id=" + client_id + "&" + 
		"client_secret=" + client_secret + "&" + 
		"code=" + ???;
		
????????????

client_id ? client_secret ???????? ??? ??????????? ?????????? ? ???????24.

??????? "???????????????????Get??????" ?? ?????? ???? ??????????????1=????????1&????????2=????????2 ?????????? ?????????, ??? ???? = ????????, ? ???????? = ????????

?????? ??????? ???????? ???????


????????????? =  "fields[NAME]=" + ??? + "&fields[SECOND_NAME]=" + ???????? + "&fields[LAST_NAME]=" + ??????? +
		"&fields[ADDRESS_CITY]=" + ???????????????????.????? + 
		"&fields[COMMENTS]=" + ???????????????????.?????????????????? + 
		"&fields[EMAIL][0][VALUE_TYPE]=WORK&fields[EMAIL][0][VALUE]=" + ???????????????????.Email +
		"&fields[ASSIGNED_BY_ID]=" +  ??????????????? + "&fields[TYPE_ID]=CLIENT" +
		"&fields[PHONE][0][VALUE_TYPE]=WORK&fields[PHONE][0][VALUE]=" + ???????????????????.???????;
		
	
	??? = ?????????REST??????("crm.contact.add", ?????????????, "");
	
	// ??????? ??? ??????????

	?????? = ????? ??????JSON;
	??????.????????????????(???);
	
	?????? = ?????????JSON(??????);

	???? ??????.????????("result", ????????????????)  ?????
		
		????????("??????? ????????!");
		
	?????
		
		????????????????? "?????? ??? ?????????? ?????? ????????!";
		
	?????????;

??? ?????? ?????????REST??????:


??????? ?????????REST??????(REST??????, ?????????, ????)
 	
	??????????????();
	
	
	ssl = ????? ????????????????????OpenSSL(
                ????? ?????????????????Windows(
                                ???????????????????????Windows.????????),
                ????? ????????????????????????????????Windows());   
                         
	?????????? = ????? HTTP??????????(
                            ????????????24,
							, // ????
							, // ????????????
							, // ??????
							, // ??????
                            5, // ??????? ? ????????
                            ssl // ?????????? HTTPS ??????????
                        );
						
	????????? = ????? ????????????;
	?????????.????????("Cookie", Cookie);
	
	
	
	???? ????????? = "" ?????
		?????? = ????? HTTP??????("rest/" + REST?????? + "?auth=" + AccessToken, ?????????);											
	?????
		?????? = ????? HTTP??????("rest/" + REST?????? + "?auth=" + AccessToken + "&" + ?????????, ?????????);											
	?????????;
	
	??????.??????????????????????(????);
	
			
			
	????? = ??????????.????????(??????);	

	??????? ?????.?????????????????????();

????????????

?? ? ??????????????  ????????? ??????????????:


????????? ??????????????()
 	
	// ???????? ????? ?? ??????????
	
	???? RefreshTime = ????(1, 1, 1) ?????
		
		????????????????????();
		???????;
		
	?????????;
	
	????  RefreshTime - 5 < ???????????() ?????
		
			ssl = ????? ????????????????????OpenSSL(
                ????? ?????????????????Windows(
                                ???????????????????????Windows.????????),
                ????? ????????????????????????????????Windows());   		
		// ???????? ?????
			?????????? = ????? HTTP??????????(
                            "oauth.bitrix.info",
							, // ????
							, // ????????????
							, // ??????
							, // ??????
                            5, // ??????? ? ????????
                            ssl // ?????????? HTTPS ??????????
                        );
						
						
			????????? = ????? ????????????;			
			?????????.????????("Cookie", Cookie);						
			
			?????? = ????? HTTP??????("oauth/token" + ??????????????????????????(), ?????????);
			
			
			
			
			????? = ??????????.????????(??????);
			
			
			???? ?????.???????????? <> 200 ?????
				
				????????????????? "?????? ??? ????????? access_token"; 
				
			?????
				
				// ????????? ?????????? json
				json = ?????.?????????????????????();
				
				?????? = ????? ??????JSON;
				??????.????????????????(json);
				?????????????? = ?????????JSON(??????);
				
				
				// ???????? ????????? ???????????
				AccessToken  = ??????????????.access_token;
				RefreshToken = ??????????????.refresh_token;
				RefreshTime  = ???????????() + ??????????????.expires_in;
			
			?????????;
		
		
	?????????;

??????????????


??????? ??????????????????????????()
	
	??????? "/?" + "grant_type=refresh_token" + "&" + 
		"client_id=" + client_id + "&" + 
		"client_secret=" + client_secret + "&" + 
		"refresh_token=" + RefreshToken;
	
????????????

??? ???? ?? ??????? ???????. ???? ?? ??????? ?????????? ???????????????? ????. ? ??? ???????? ???????? ????????????? ???????? ????????????, ??? ??????? ????????????. ? ?? ???, ???????? ???????? ? fields[ASSIGNED_BY_ID].

Read Full Article