2017-10-27 7 views
0

私はあなたの助けが必要です:Dribbbleでショットを作成する手紙

Dribblyでショットを作成しようとしましたが、エラーメッセージが表示されます。

ドキュメント(http://developer.dribbble.com/v1/shots/#create-a-shot)に記載されているようにしました。これは私のコードです:

$url = "http://www.rodos-palace.gr/uploads/images/509.jpg"; 
    print_r($drib->create_shot('shottitle', $url)); 



public function create_shot($title, $image, $description = false) 
{ 
    $query = array(
     'title' => $title, 
     'image' => $image 
    ); 

    if ($description) { 
     $query['description'] = $description; 
    } 

// print_r("<br>crearing_shot-> ".__LINE__); 

$query['access_token'] = $this->access_token; 


return $this->curl_post_shot($this->short_api, $query); 

// return $this->curl_post_shot($this->short_api . "?" . 'access_token=' . $this->access_token, http_build_query($query)); 
} 


public function curl_post_shot($url, $post) 
{ 


    $headers = array("Content-Type: multipart/form-data"); 

    $curl = curl_init(); 
    curl_setopt_array($curl, array(
     CURLOPT_RETURNTRANSFER => 1, 
     CURLOPT_URL => $url, 
     CURLOPT_POST => 1, 
     CURLOPT_POSTFIELDS => $post, 
     CURLOPT_HTTPHEADER => $headers, 

     /*,  // stop after 10 redirects 
     CURLOPT_SSL_VERIFYPEER => false*/ 
    )); 

    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); 
    curl_setopt($curl, CURLINFO_HEADER_OUT, true); 

    $information = curl_getinfo($curl); 

    if(($resp = curl_exec($curl)) === false) 
    { 
     echo 'Curl error: ' . curl_error($curl); 
    } 
    else 
    { 
     // echo 'Operation completed without any errors'; 
    } 

    //echo "Check HTTP status code >>>>"; 
    // Check HTTP status code 
    if (!curl_errno($curl)) { 
     switch ($information = curl_getinfo($curl, CURLINFO_HTTP_CODE)) { 
     case 200: # OK 
      break; 
     default: 
      { /*echo 'Unexpected HTTP code: ', $http_code, "\n";*/} 
     } 
    } 
    curl_close($curl); 

    print_r("<br>crearing_shot-> ".__LINE__); 

    echo "<pre>"; 

    var_dump($information); 
    print_r("<br>----------------------------<br>"); 

    print_r($headers); 
    return $resp; 
} 

、これは誤りです。この横に

{ "message": "Validation failed.", "errors": [ { "attribute": "image", "message": "file is required" } ] }

、私はイメージ実際のパスとし、PHP $_FILESでそれをやろうと結果は同じです。

この問題を解決するのを手伝ってください。 ありがとうございました。

答えて

0

アップローダーアカウントがないので確認できませんので、ファイルをアップロードするにはcURLファイルクラスを使用することをおすすめします。そこにこのへの複数の方法がありますが、あなたはOOPを使用するので、あなたはこれを試してみてください:

public function create_shot($title, $image, $description = false) 
{ 
    $query = array(
     'title' => $title, 
     'image' => new CURLFile($image), // $image is the absolute path to the image file 
    ); 

    if ($description) { 
     $query['description'] = $description; 
    } 

    $query['access_token'] = $this->access_token; 

    return $this->curl_post_shot($this->short_api, $query); 
} 

あなたは、ファイルのアップロードについてmanualで詳細を検索します。

+0

ありがとう – Vigen