2017-06-15 7 views
1

Googleドライブファイルをカスタムプロパティで保存しようとしていますが、動作していません.Google APIのドキュメントが非常に貧弱なため、この問題で苦労しています。これまでのコードはこれまで通りです:カスタムプロパティを持つGoogleドライブAPIアップロードファイル

$g = new FileCtrl(); 
$fileMeta = new Google_Service_Drive_DriveFile(); 
$fileMeta->name = $file['name']; 
$fileMeta->parents = [$g->googleDriveFolderId]; 
$fileMeta->appProperties = (object)['lead_id'=>$file['lid'], 'sales_package_id'=>$file['pid'], 'user_id'=>$user->uid]; 
//$fileMeta->size = $file['size']; 

$fileData = array(
       'data' => $fileContent, 
       'mimeType' => $file['media_type'], 
       'uploadType' => $file['multipart'], 
      ); 

//create file in google drive 
$res = $g->client->files->create($fileMeta, $fileData); 

エラーは返されず、イベントは保存されますが、カスタムプロパティはありません。

+0

あなたのコードはエラーを送出しますか?何もしない?ようこそ、あなたが投稿したコードであなたの問題が何であるかを私たちに伝える必要があります。 – DaImTo

+0

エラーを返さず、イベントが保存されますが、カスタムプロパティはありません! –

+0

あなたはカスタム財産が挿入されていないことをどこで確認していますか? – DaImTo

答えて

3

返されたファイルリソースのプロパティを探している可能性があります。

ドライブがないのは、ファイルプロパティ(name、mime type、id)が少数しか返されないためです。フルファイルリソースを表示する場合は、要求にfields=*を含める必要があります。だから、正しい要求が

POST https://content.googleapis.com/drive/v3/files?fields=*

ようになります私は、PHPのライブラリを知らないので、あなたは、そのビットを把握する必要があります。

'fields' => '*',

+0

これはうまくいきました。あなたの推測は正しいです: 'fields' => '*'、 –

0

これをテストしました。

要求:

{ 
    "name": "Linda Test", 
    "mimeType": "application/vnd.google-apps.document", 
    "appProperties": { 
    "TestingId": "1" 
    } 
} 

応答:

{ 
"kind": "drive#file", 
"id": "1mhP2EW4Kbl81F5AuJ4zJ2IPoeI56i_Vd5K-dfGJRj6Y", 
"name": "Linda Test", 
"mimeType": "application/vnd.google-apps.document" 
} 

は、ファイルのメタデータをチェックするためにfile.getを行います。

{ 
"kind": "drive#file", 
"id": "1mhP2EW4Kbl81F5AuJ4zJ2IPoeI56i_Vd5K-dfGJRj6Y", 
"name": "Linda Test", 
"mimeType": "application/vnd.google-apps.document", 
"starred": false, 
"trashed": false, 
"explicitlyTrashed": false, 
"parents": [ 
    "0AJpJkOVaKccEUk9PVA" 
], 
"appProperties": { 
    "TestingId": "1" 
}, 
    ... 
} 

私はあなたがその、それが追加されたことを確認するために戻った後File.get方法を使用して、アップロードしたファイルを確認してください示唆しています。私の知る限りでは、Googleドライブのウェブサイトのインターフェースを介してこれらのフィールドを見る方法があります。 file.getを破棄してもまだアップロードされていないことが判明した場合は、Google APIs PHP clientライブラリチームのバグとしてログに記録することをお勧めします。これは生の残りのリクエストと一緒にライブラリで問題になる可能性があります。

関連する問題