5

私の質問は iContact API に固有のものです。アプリケーションを登録し、API ID を取得しました。しかし、accountId と clientFolderId が見つかりません。

以下のリンクを参照してください。

http://developer.icontact.com/documentation/request-your-accountid-and-clientfolderid/ 上のページ「アカウント リソースで GET を実行する」で、これを実行してアカウント ID と clientfolderid を取得する方法。

4

4 に答える 4

2

これは、アカウントIDとクライアントフォルダーIDを取得するための完全なコードです。上記の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

于 2012-01-17T03:55:46.287 に答える
2

私が見つけた最も簡単な方法: サンドボックスまたは実際の iContact アカウントにログインし、メイン メニューで [連絡先] -> [サインアップ フォーム] に移動し、任意のフォームを作成して [HTML を表示] をクリックすると、そこにアカウント ID が表示されます。

于 2011-10-12T13:40:45.560 に答える
1

iContact API を使用する唯一の方法は、正しいヘッダーをサーバーに送信することです。これにより、ドキュメントに記載されている要求とアクションを実行できるようになります。

これを行う最善の方法は、cUrl を使用して PHP スクリプトをセットアップすることです。

     $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 を呼び出すだけです!

ヒントになれば幸いです。

「良いコーディングを続けてください。」

于 2012-01-06T21:23:42.177 に答える
0

この PHP iContact API はかなり便利ですhttps://github.com/icontact

于 2012-12-10T15:32:42.900 に答える