0

cURL/PHP を使用してタスクに添付ファイルを正常に追加しようとすると、問題が発生します。

$data = array("file" => "@$filename");
$headers = array("Authorization: Basic " . base64_encode($asana_api_key) . ":"));
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://app.asana.com/api/1.0/tasks/$task_id/attachments");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_exec($ch);

$filename、$asana_api_key、および $task_id が適切に設定されていると仮定します。かなり簡単なはずですが、なんらかの理由で次の応答が返されます。

{"errors":[{"message":"Server Error","phrase":"19 snobby warthogs cheer busily"}]}

奇妙なことに、curl コマンド ラインを使用してこのリクエストを実行すると、完全に機能します。私はこれを何時間もいじりましたが、役に立ちませんでした。

問題が何であるかについてのアイデアはありますか?

4

1 に答える 1

0

これは私たちの側のバグであり、修正する必要があります。これは、curl がファイル名を送信する方法、つまりファイルへの完全なパスに関係していました。ブラウザーは通常、ベース名のみを (ディレクトリなしで) 送信します。ローカル名のフル パスを取得した場合、同じロジックを適用するようになりました。動作しているように見えますが、ケースは異なる場合があります。

それが今あなたにとってうまくいくかどうかを知っていただければ幸いです。

于 2013-08-21T00:52:35.737 に答える