2011-08-30 11 views
5

Mi pregunta es específica para iContact API. He registrado una aplicación y obtengo una ID de API. Pero no puedo encontrar accountId y clientFolderId.Cómo puedo obtener ID de cuenta y clientFolderId en la API de icontact

Por favor, vea este enlace a continuación:

http://developer.icontact.com/documentation/request-your-accountid-and-clientfolderid/ En la página anterior "Realizar un GET en el recurso de Cuentas" ¿Cómo puedo realizar esto para obtener ID de cuenta y clientfolderid.

Respuesta

2

La manera más fácil que he encontrado: Inicie sesión en la caja de arena o en su cuenta iContact real, en el menú principal vaya a Contacto -> Formularios de inscripción, luego cree cualquier forma, haga clic en ver HTML y encontrará Cuenta Id allí.

1

La única manera de trabajar con la API de iContact es enviar encabezados correctos al servidor, luego podrá realizar cualquiera de las solicitudes y acciones que aparecen en la documentación.

La mejor manera que he encontrado para hacer esto es mediante la creación de un script PHP con rizo

 $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); 

Aquí puede obtener su ID de cuenta y el resto es simplemente llamando a la URL correcta con este guión!

Espero que te dé una pista.

"Mantén la buena codificación".

+0

Este celebró las respuestas para mí. Parece que he estado usando una configuración incorrecta de CURL. Aunque podría haber sido esta línea la que me salvó: "GET". $ Página. "HTTP/1.0", Sin embargo, es importante tener en cuenta que las dos líneas siguientes deben cambiarse de "text/html" a "texto/xml". – Jake

2

Este es mi código completo para obtener el ID de cuenta y el cliente ID de carpeta, gracias a Carlos Duran arriba para conseguir algunos de mis problemas de código elaborado:

/* 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); 
    } 
} 

solo me pasa a JSON , mucho mejor.

$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; 

y uso:

"Accept: application/json", 
"Content-Type: application/json", 

En lugar de text/xml anteriormente.

+0

Acabo de cambiar a JSON. Mucho mejor. Editado arriba. – Jake

Cuestiones relacionadas