2016-07-08 24 views
0

に空のファイルでPHPアーサナライブラリの結果を使用してタスクに添付ファイルを追加します。私はファイルを「追加」するのに成功していますが、タスクでそれらを開くと、それらは完全に空でも破損しています。は、私はPHPのアーサナライブラリ(<a href="https://github.com/Asana/php-asana" rel="nofollow noreferrer">https://github.com/Asana/php-asana</a>)を使用してタスクに添付ファイルを追加しようとしているタスク

enter image description here

私は同じ結果との.png、.DOC、および.PDFすべてを試してみました。私の要求は次のようになります。

$attachment = $client->attachments->createOnTask(
    $task->id, 
    'screenshot_from_2016-07-08_140457.png', 
    'http://edit.local.org/sites/default/files/webform/change-request-materials/screenshot_from_2016-07-08_140457_8.png', 
    'image/png' 
); 

私はまた、ファイル名/sites/default/files/webform/change-request-materials/screenshot_from_2016-07-08_140457_8.pngの相対パスを使用してみましたが、同じ結果を得るています。

これは、私がライブラリから使用「コード例」でかなり簡単そうです。

// add an attachment to the task 
$demoAttachment = $client->attachments->createOnTask(
    $demoTask->id, 
    "hello world", 
    "upload.txt", 
    "text/plain" 
); 

はまた、私は添付ファイルがすべてで仕事を得ることができればちょうど見るためにhttps://asana.com/developers/api-reference/attachmentsのカール要求の2つのバージョンを使用してみました。

第1に:

curl -H "Authorization: Bearer <personal_access_token>" https://app.asana.com/api/1.0/tasks/152938418205845/attachments --form "[email protected]://edit.local.org/sites/default/files/webform/change-request-materials/screenshot_from_2016-07-08_140457_12.png;type=image/png" 

だから私は前に「@」を削除することを決め

curl: (26) couldn't open file "http://edit-fca.local.org/sites/default/files/webform/change-request-materials/screenshot_from_2016-07-08_140457_12.png" 

をもたらし、私はファイルが入っているファイルやフォルダに777をしました。

{"errors":[{"message":"file: File is not an object","help":"For more information on API status codes and how to handle them, read the docs on errors: https://asana.com/developers/documentation/getting-started/errors"}]} 

私がそのURLに行ったとき、私はそのファイルについては何も教えてくれませんでしたobj誤りがあります。 PHP-アーサナライブラリとして立ち往生

ビットは、少なくともそこにファイルを置くように見えるが、彼らは空です。カールのリクエストは全く機能しないようですが。

ところで私は、PHP 5.5.9を使用しています。

答えて

1

私はPHPライブラリでサンプルコードを試してみたのだが、正常に動作するようです。私はあなたがcreateOnTaskに渡す引数を誤解しているかもしれないと思います。また、あなたがアップロードしたいインターネット上のファイルのパスを渡しているようですが、あなたが実際に行うことができるのは、アップロードしたい正確なデータを渡すことです。私は、インターネットからファイルの内容を取得する方法を示すためにphpで詳しくは分かりませんが、ファイルがローカルにある場合はfile_get_contentsを使用できます。

のは、サンプルコードとあなたのコードを見てみましょう:

$attachment = $client->attachments->createOnTask(
    $task->id, 
    'screenshot_from_2016-07-08_140457.png', // This should be your image data- but like encoded the right way 
    'http://edit.local.org/sites/default/files/webform/change-request-materials/screenshot_from_2016-07-08_140457_8.png', // this should be the filename from above 
    'image/png' 
); 

$demoAttachment = $client->attachments->createOnTask(
    $demoTask->id, 
    "hello world", // Contents of file 
    "upload.txt", // The file name of the attachment 
    "text/plain" // encoding 
); 

同じフォルダ内の画像でこれを行うことができる方法の相続人一例。

$demoAttachment = $client->attachments->createOnTask(
    $demoTask->id, 
    file_get_contents("someimage.png"), // Contents of file 
    "upload.png", // The file name of the attachment 
    "image/png" // encoding 
); 

https://asana.com/developers/api-reference/attachmentsを参照してください。

関連する問題

 関連する問題