★プログラムの書き方等の個別のご質問については有償/無償を問わず弊社サポート外となり、
開発のご相談につきましてはご担当のWeb制作企業様にお尋ねくださいますよう幸いです。
トラブルシューティング
仕様書にもとに実装を行ない、原因不明のエラーが発生した場合、以下の順にお試しください。
- 単純な呼び出しが可能かを確認するため、「読者データ取得」を試す。
※開発言語がPHPの場合、後述のサンプルコードをもとに実行してください。
※失敗した場合(レスポンスコードがOKもNGも返ってこない場合)、APIが動作しない場合の対処法をあわせてご覧ください。 - 情報の取得(GET形式)は可能で、「メルマガへの読者追加」等(POST形式)に問題がある場合、プログラムから入力された値ではなく、ハードコートした固定値で試す。
※特に、メールアドレスや数値が想定されているパラメータは、適切な形式にして送信してください。不正な値の場合、NGが返却されます。
PHPのサンプルコード
GET形式
<?php
// ユーザID毎共通
$jcmmg['userID'] = '***';
$jcmmg['PW'] = '***';
$jcmmg['baseUrl'] = 'https://***';
// ページのエンコーディング
$pageEncoding = 'UTF-8';
// 送信するデータ
$params['Email'] = '***';
// 文字コードの変換
mb_convert_variables('SJIS',$pageEncoding,$params);
// 取得開始
$url = $jcmmg['baseUrl'].'?'.http_build_query( $params );
$curl = curl_init( $url );
$option = [
CURLOPT_USERPWD => $jcmmg['userID'] . ':' . $jcmmg['PW'],
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLINFO_HEADER_OUT => true
];
curl_setopt_array($curl, $option);
$response = curl_exec($curl);
$arr = json_decode(mb_convert_encoding($response, $pageEncoding, 'SJIS'),true);
// 調査用データの取得
$curlInfo['url'] = curl_getinfo($curl, CURLINFO_EFFECTIVE_URL);
$curlInfo['head'] = curl_getinfo($curl, CURLINFO_HEADER_OUT);
$curlInfo['IP'] = curl_getinfo($curl, CURLINFO_LOCAL_IP);
$curlInfo['code'] = curl_getinfo($curl, CURLINFO_RESPONSE_CODE);
// cURLセッション終了
curl_close($curl);
// 調査用データの表示
print("■アクセス元URL:${curlInfo['url']}<br />");
print("■リクエストヘッダ:${curlInfo['head']}<br />");
print("■接続元IPアドレス:${curlInfo['IP']}<br />");
print("■HTTPコード:${curlInfo['code']}<br />");
// 実際の処理
if($curlInfo['code'] == 401){
// 認証失敗時
print('■実行結果:アクセスが許可されていません');
}elseif(is_array($arr)){
// 認証成功時時
print("■実行結果:${arr['ReturnCode']}<br />");
var_dump($arr);
}
?>
POST形式
<?php
// ユーザID毎共通
$jcmmg['userID'] = '***';
$jcmmg['PW'] = '***';
$jcmmg['baseUrl'] = 'https://***';
// ページのエンコーディング
$pageEncoding = 'UTF-8';
// 送信するデータ
$params['Subject'] = '件名';
$params['Body'] = '本文';
// 文字コードの変換
mb_convert_variables('SJIS',$pageEncoding,$params);
// 取得開始
$url = $jcmmg['baseUrl'];
$curl = curl_init( $url );
$option = [
CURLOPT_USERPWD => $jcmmg['userID'] . ':' . $jcmmg['PW'],
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $params,
CURLOPT_RETURNTRANSFER => true,
CURLINFO_HEADER_OUT => true
];
curl_setopt_array($curl, $option);
$response = curl_exec($curl);
$arr = explode("\n", mb_convert_encoding($response, $pageEncoding, "SJIS"));
// 調査用データの取得
$curlInfo['url'] = curl_getinfo($curl, CURLINFO_EFFECTIVE_URL);
$curlInfo['head'] = curl_getinfo($curl, CURLINFO_HEADER_OUT);
$curlInfo['IP'] = curl_getinfo($curl, CURLINFO_LOCAL_IP);
$curlInfo['code'] = curl_getinfo($curl, CURLINFO_RESPONSE_CODE);
// cURLセッション終了
curl_close($curl);
print("■APIのURL:${curlInfo['url']}<br />");
print("■リクエストヘッダ:${curlInfo['head']}<br />");
print("■接続元IPアドレス:${curlInfo['IP']}<br />");
print("■HTTPコード:${curlInfo['code']}<br />");
if($curlInfo['code'] == 401){
print('■実行結果:アクセスが許可されていません');
}elseif(is_array($arr)){
print("■実行結果:".current(array_slice($arr, 0, 1, true))."<br />");
var_dump(current(array_slice($arr, 1, 1, true)));
}
?>