SDK Google Диска: вставка файла приводит к безымянному в PHP

Я знаю о двух предыдущих сообщениях:

Но кроме ответа «Вы уверены, что используете последнюю версию?», никто из спрашивающих не вернулся, чтобы сказать, да или нет, или удалось ли им найти ответ.

Поскольку я делаю то же самое, что и они, я использую последнюю версию apiDriveService.php с последней версией, датированной июнем 2012 года.

Данные найдены правильно, но когда вы доходите до строки вставки, явно происходит что-то не так.

И я не понимаю, почему для примера SDK php он вроде идет правильно.

Это проблема в консоли Google Api? Или мне нужно кодировать данные во что-то особенное?

РЕДАКТИРОВАТЬ: в файле apiDriveService я вижу эту строку:

$this->files = new FilesServiceResource($this, $this->serviceName, 'files', json_decode('{"methods": {
"insert": {"scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"],
"parameters": {"convert": {"default": "false", "type": "boolean", "location": "query"}, "targetLanguage": {"type": "string", "location": "query"}, "sourceLanguage": {"type": "string", "location": "query"}, "ocrLanguage": {"type": "string", "location": "query"}, "pinned": {"default": "false", "type": "boolean", "location": "query"}, "ocr": {"default": "false", "type": "boolean", "location": "query"}, "timedTextTrackName": {"type": "string", "location": "query"}, "timedTextLanguage": {"type": "string", "location": "query"}}, "supportsMediaUpload": true, "request": {"$ref": "File"}, "mediaUpload": {"maxSize": "10GB", "accept": ["*/*"], "protocols": {"simple": {"path": "/upload/drive/v2/files", "multipart": true}, "resumable": {"path": "/resumable/upload/drive/v2/files", "multipart": true}}}, "id": "drive.files.insert", "httpMethod": "POST", "path": "files", "response": {"$ref": "File"}}, ...);

В параметрах, которые я отправляю, есть data и mimetype:

$created = $apiService->files->insert($driveFile, array('data' => $data,'mimeType' => $mimeType));

И в функции вставки есть array_merge с данными и mimetype:

public function insert(DriveFile $postBody, $optParams = array()) {
  $params = array('postBody' => $postBody);
  $params = array_merge($params, $optParams);
  $data = $this->__call('insert', array($params));
  if ($this->useObjects()) {
    return new DriveFile($data);
  } else {
    return $data;
  }
}

Я не нахожу их в части вставки строки, которую я упомянул выше. Это связано с этим?


person vicrabb    schedule 24.07.2012    source источник
comment
Я не хочу показаться нетерпеливым, но я хотел бы получить хотя бы комментарий, чтобы знать, что эта проблема не забыта.   -  person vicrabb    schedule 30.07.2012


Ответы (1)


Просто проверьте текущий клиент API от Google SVN. http://code.google.com/p/google-api-php-client/source/checkout У нас была та же проблема, но после проверки svn она волшебным образом сработала, и спасибо Алену и Клаудио за их быстрый ответ на это.

person Muffy    schedule 02.08.2012