Как я могу получить идентификатор учетной записи и clientFolderId в icontact API
Мой вопрос специфичен для iContact API. Я зарегистрировал приложение и получил идентификатор API. Но я не могу найти accountId и clientFolderId.
Пожалуйста, смотрите эту ссылку ниже:
http://developer.icontact.com/documentation/request-your-accountid-and-clientfolderid/ На странице выше "Выполнить GET на ресурсе учетных записей" Как я могу это сделать, чтобы получить идентификатор учетной записи и clientfolderid.
4 ответа
Самый простой способ, который я нашел: войти в "песочницу" или в свою настоящую учетную запись iContact, в главном меню перейти в "Контакты" -> "Зарегистрироваться", затем создать любую форму, нажать "Просмотреть HTML", и вы найдете там "Идентификатор учетной записи".
Это мой полный код для получения идентификатора учетной записи и идентификатора папки клиента, спасибо Карлосу Дюрану (Carlos Duran) выше за решение некоторых моих проблем с кодом:
/* iContact LIVE * /
$GLOBALS['iContact_settings'] = array(
'apiUrl' => 'https://app.icontact.com',
'apiPage' => '/icp/a/',
'username' => 'username',
'password' => 'password',
'appId' => 'appId'
);
/* iContact SANDBOX */
$GLOBALS['iContact_settings'] = array(
'apiUrl' => 'https://app.sandbox.icontact.com',
'apiPage' => '/icp/a/',
'username' => 'username-beta',
'password' => 'password',
'appId' => 'appId'
);
/**/
$icontact_url = $GLOBALS['iContact_settings']['apiUrl'] . $GLOBALS['iContact_settings']['apiPage'];
$icontact_page = $GLOBALS['iContact_settings']['apiPage'];
$icontact_headers = array(
"GET ".$icontact_page." HTTP/1.0",
"Accept: text/xml",
"Content-Type: text/xml",
"API-Version: 2.2",
"API-AppId: " . $GLOBALS['iContact_settings']['appId'],
"API-Username: " . $GLOBALS['iContact_settings']['username'],
"API-Password: " . $GLOBALS['iContact_settings']['password']
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $icontact_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $icontact_headers);
$data = curl_exec($ch);
curl_close($ch);
$account_id = "";
if (($pos=strpos($data,"<accountId>"))!==false){
$account_id = substr($data, strlen("<accountId>")+$pos);
if (($pos=strpos($account_id,"<"))!==false){
$account_id = substr($account_id, 0, $pos);
}
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $icontact_url ."$account_id/c/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $icontact_headers);
$data = curl_exec($ch);
curl_close($ch);
$client_folder_id = "";
if (($pos=strpos($data,"<clientFolderId>"))!==false){
$client_folder_id = substr($data, strlen("<clientFolderId>")+$pos);
if (($pos=strpos($client_folder_id,"<"))!==false){
$client_folder_id = substr($client_folder_id, 0, $pos);
}
}
Я просто переключился на JSON, намного лучше.
$handle = curl_init();
curl_setopt($handle, CURLOPT_URL, $icontact_url);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($handle, CURLOPT_HTTPHEADER, $icontact_headers);
$data = curl_exec($handle);
curl_close($handle);
$decoded = json_decode($data);
$account_id = $decoded->accounts[0]->accountId;
$handle = curl_init();
curl_setopt($handle, CURLOPT_URL, $icontact_url ."$account_id/c/");
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($handle, CURLOPT_HTTPHEADER, $icontact_headers);
$data = curl_exec($handle);
curl_close($handle);
$decoded = json_decode($data);
$client_folder_
id = $decoded->clientfolders[0]->clientFolderId;
И использовать:
"Accept: application/json",
"Content-Type: application/json",
Вместо text/xml
выше.
Единственный способ работы с API iContact - это отправка правильных заголовков на сервер, тогда вы сможете выполнять любые запросы и действия, которые появляются в документации.
Лучший способ, который я нашел, это настроить PHP-скрипт с помощью cUrl.
$url = "https://app.sandbox.icontact.com/icp/a/";
$page = "/icp/a/";
$headers = array(
"GET ".$page." HTTP/1.0",
"Accept: text/html",
"Content-Type: text/html",
"API-Version: 2.2",
"API-AppId: yourapiappid",
"API-Username: yourapiusername",
"API-Password: yourappidpassword"
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$data = curl_exec($ch);
Здесь вы получаете свой accountId, а остальное просто вызывает правильный URL с помощью этого скрипта!
Надеюсь, это даст вам подсказку.
"Продолжайте в том же духе".
Этот PHP iContact API довольно полезен https://github.com/icontact