これは、現在のオンライン カスタマー サービスを表示するために複数のカスタマー サービスを呼び出すときの WeChat API です
戻りデータの例 (正しい場合は JSON 結果が返されます):
{ "kf_online_list": [ { "kf_account": "test1@test", "status": 1, "kf_id": "1001", "auto_accept": 0, "accepted_case": 1 }, { "kf_account": "test2@test", "status": 1, "kf_id": "1002", "auto_accept": 0, "accepted_case": 2 } ]}
$url_online ="https://api.weixin.qq.com/cgi-bin/customservice/getonlinekflist?access_token={$access_token}";$output_online=file_get_contents($url_online);$jsonStr = json_decode($output_online,true);//读取信息:$content = "客服1:".$jsonStr["kf_online_list"]["kf_account"]."\n在线状态:".$jsonStr["kf_online_list"]["status"]."\n正在接待人数:".$jsonStr["kf_online_list"]["accepted_case"]."\n\n客服2:".$jsonStr["kf_online_list"]["kf_account"]."\n在线状态:".$jsonStr["kf_online_list"]["status"]."\n正在接待人数:".$jsonStr["kf_online_list"]["accepted_case"];?>
https を使用する場合、file_get_contents に警告があるようです。それを確認するには、表示エラーをオンにする必要があります
この種の問題は、最後の変数を段階的に var_dump することで判断できます。
それはわかっています どうしたのですか? $
jsonStr["kf_online_list"]["kf_account"]
jsonStr["kf_online_list"][0]["kf_account"]
print_r($data);
デコードされた ???? を見てください、簡単ではありませんか?
2 次元配列を 1 次元アクセスとして扱うことは、もちろん機能しません
$status=array('0'=>'不在线','1'=>'电脑在线','2'=>'手机在线','3'=>'电脑手机在线');//$onlinestatus=$jsonStr["kf_online_list"][0]["status"];foreach ($jsonStr['kf_online_list'] as $list){ foreach ($list[kf_account] as $account) { foreach ($list[status] as $onlinestatus) { $statusStr0=$status[$onlinestatus]; foreach ($list[accepted_case] as $jiedai) { $content.="客服:".$account."\n在线状态:"."$statusStr0"."\n正在接待人数:"."$jiedai"."\n\n"; } } }}
for ループを使用するだけです。 。
れーれー