2011-08-30 15 views
5

Moje pytanie jest specyficzne dla iContact API. Zarejestrowałem aplikację i otrzymałem identyfikator API. Ale nie jestem w stanie znaleźć accountId i clientFolderId.Jak mogę uzyskać identyfikator konta i clientFolderId w icontact API

proszę zobaczyć poniżej linku:

http://developer.icontact.com/documentation/request-your-accountid-and-clientfolderid/ Na powyższej stronie „Wykonać dostać się na zasób Accounts” Jak mogę wykonać to, aby uzyskać identyfikator konta i clientfolderid.

Odpowiedz

2

Najprostszy sposób, jaki znalazłem: Zaloguj się do piaskownicy lub do swojego prawdziwego konta iContact, w menu głównym przejdź do Kontakt -> Formularze rejestracyjne, a następnie utwórz dowolny formularz, kliknij widok HTML i znajdziesz Konto Jestem tam.

1

Jedynym sposobem na pracę z interfejsem API iContact jest wysłanie prawidłowych nagłówków do serwera, a następnie będzie można wykonać dowolne z żądań i działań, które pojawią się w dokumentacji.

Najlepszym sposobem, że znalazłem to zrobić poprzez utworzenie skryptu PHP z dyni

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

Tu masz swoje accountid a reszta jest po prostu wywołanie odpowiedniego adresu URL z tego skryptu!

Mam nadzieję, że daje to podpowiedź.

"Kontynuuj dobre kodowanie."

+0

ta posiadała odpowiedzi dla mnie. Wydaje mi się, że używam nieprawidłowej konfiguracji CURL. Chociaż to mogła być ta linia, która mnie uratowała: "GET". $ Strona. "HTTP/1.0", Należy jednak pamiętać, że kolejne dwie linie muszą zostać zmienione z "text/html" do "text/xml". – Jake

2

To mój pełny kod, aby uzyskać identyfikator konta i klient folderu id, dzięki Carlos Duran powyżej uzyskania niektóre z moich problemów kodowych wypracowane:

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

prostu włączane do JSON , dużo lepiej.

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

i zastosowanie:

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

Zamiast text/xml powyżej.

+0

Właśnie przełączyłem się na JSON. Dużo lepiej. Edytowane powyżej. – Jake

Powiązane problemy