2017-05-27 8 views
0

ウェブサイト間のAPIを扱っていますが、うまく機能しません。 :/(私は初心者です)PHPを使用したAPIの構築JSON

api_login()経由で、$dataをfakeapiurl.com/Zoneに送り、$zoneにゾーンデータを取得します。

function api_login() { 
    $data = [ 
     'COM_CODE' => '1234', 
     'USER_ID' => 'user', 
    ); 

    $ch  = curl_init("https://fakeapiurl.com/Zone"); 
    $payload = json_encode($data); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $payload); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json')); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    $result = curl_exec($ch); 
    curl_close($ch); 

    $json = json_decode($result); 

    $zone = $json->Data->ZONE; 
} 

以下の行が正しいかどうかわかりません。私の意図は、$data配列のゾーンデータをグループ化することです。

array_push($data, $zone); 

私の希望はちょうどこのよう$dataを作ることです。$dataが設定されている場合にのみ

$data = array(
    'COM_CODE' => '1234', 
    'USER_ID' => 'user', 
    'ZONE'  => $zone, 
); 

、私はセッションIDにログインして得ることができます。

$ch  = curl_init("https://fakeapiurl.com/Login"); 
$payload = json_encode($data); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json')); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false); 
$result = curl_exec($ch); 
curl_close($ch); 

$json = json_decode($result); 

$session_id = $json->Data->SESSION_ID; 

return $session_id; 

php、json関連のページを検索しましたが、私のコードが機能しない理由が見つかりませんでした。あなたの助けは非常に高く評価されます。ありがとう!

答えて

0

以下の行が正しいかどうかわかりません。私の意図は、$data配列のゾーンデータをグループ化することです。

array_push($data, $zone); 

私の希望は、ちょうどこのよう$dataを作ることです。これは

$data['ZONE'] = $zone; 

代わりのarray_push($data, $zone);を試すためには

$data = array(
    'COM_CODE' => '1234', 
    'USER_ID' => 'user', 
    'ZONE'  => $zone, 
); 

。 (あなたの解決策では"ZONE"キーは$zoneに設定されません)。

+0

あなたの知識をありがとう!それは役に立ちました。 –

+0

問題はありません@ダンホン私はあなたを助けることができてうれしいです。 –

関連する問題