json
  • curl
  • php-5.3
  • http-authentication
  • api-key
  • 2016-04-07 17 views 1 likes 
    1

    私はcronジョブで実行するスクリプトを作成しています。GET json with authentication API key

    いくつかのjson注文を取得して処理することが推奨されています。現時点では

    私のスクリプトは次のようになります。

    $json_string = '/admin/orders/7109.json'; 
    $real_url = "https://my-store.myshopify.com{$json_string}"; 
    $user = 'my-user'; 
    $pass = 'my-pass'; 
    
    $ch = curl_init($real_url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
    curl_setopt($ch, CURLOPT_USERPWD, $user . ':' . $pass); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json')); 
    
    $result = json_decode(curl_exec($ch),true); 
    curl_close($ch); 
    
    file_put_contents(__DIR__ . '/../debug/tracker_test.txt', print_r($result,true)); 
    

    私は私の資格情報が正しいさえカントーコードファイルに書き込まれ、これを取得しています。

    Array 
    (
        [errors] => [API] Invalid API key or access token (unrecognized login or wrong password) 
    ) 
    

    私に何か不足していますか?

    編集:Shopifyのプライベートアプリのセクションでは、それは、例えば、URL形式を与える:

    https://apikey:[email protected]/admin/resource.json 
    

    はだから今スクリプトは次のようになります。

    $json_url = 'https://my-api-key:[email protected]/admin/orders.json'; 
    
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $real_url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json')); 
    
    $result = json_decode(curl_exec($ch), true); 
    curl_close($ch); 
    

    が、私はまだ同じを取得していますエラー。

    +0

    はよさそうだ、私はこのようなユーザ名とパスワードを送信しよう...と言うでしょうしますcurl_setopt ($ ch、CURLOPT_URL、$ url); – dquinonez

    +0

    '' {$ username}:{$ password} ''を意味しますか? – Onilol

    +0

    また、curl_exec($ ch)の出力を最初に変数に入れてから、その変数をエンコードしてみてください。他にも、何らかのトークンを送る必要があるかもしれません。ここのようにhttp://stackoverflow.com/questions/30426047/correct-way-to-set-bearer-token-with-curl – dquinonez

    答えて

    0

    私には構文エラーがありました。 CURLOPT_URLを新しいURL変数で更新するのを忘れていました。

    は、それはこのように見て終わった:「$ユーザー名:$パスワード」と、このようなURLを送信します

    $json_url = 'https://my-api-key:[email protected]/admin/orders.json'; 
    
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $json_url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json')); 
    
    $result = json_decode(curl_exec($ch), true); 
    curl_close($ch); 
    
    関連する問題