2016-06-01 11 views
0

SwiftのGoogleドライブAPIを使用してGoogleドライブに画像をアップロードしようとしています。しかし、次のエラーメッセージが表示される: 予期しない応答データ(間違ったURLへのアップロード) {"error":{"code":401、 "message": "ログインが必要"、 "データ" ID: "gtl_3": "ドメイン": "グローバル"、 "理由": " }SwiftでGoogleドライブAPIを使用してGoogleドライブに画像をアップロードできません

彼女は私のコードです -

 func uploadFileToDrive() { 
     print("uploading Photo") 
     let dateFormat = NSDateFormatter() 
     dateFormat.dateFormat = "'Quickstart Uploaded File ('EEEE MMMM d, YYYY h:mm a, zzz')" 

     let file = GTLDriveFile() 
     file.name = dateFormat.stringFromDate(NSDate()) 
     file.descriptionProperty = "Uploaded from Google Drive IOS" 
     file.mimeType = "image/png" 

     let fileManager = NSFileManager.defaultManager() 
     let urls = fileManager.URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask) 

     // If array of path is empty the document folder not found 
     guard urls.count == 0 else { 
      let imageURL = urls.first!.URLByAppendingPathComponent("image.png") 
      // Data object to fetch image data 
      do { 
       let imageData = try NSData(contentsOfURL: imageURL, options: NSDataReadingOptions()) 
       let uploadParameters = GTLUploadParameters(data: imageData, MIMEType: file.mimeType) 
       let query = GTLQueryDrive.queryForFilesCreateWithObject(file, uploadParameters: uploadParameters) as GTLQueryDrive 
       self.driveService.executeQuery(query, completionHandler: { (ticket, insertedFile , error) -> Void in 
        let myFile = insertedFile as? GTLDriveFile 

        if error == nil { 
         print("File ID \(myFile?.identifier)") 
        } else { 
         print("An Error Occurred! \(error)") 
        } 

       }) 
      } catch { 
       print(error) 
      } 

      return 
     } 
    } 

私が間違ってやっている私を助けてください?

+0

エラーは非常に明確です。認証する必要があります。 –

+0

アップロードURLを認証するにはどうすればよいですか? @AlexandreCartapanis –

+0

私はiosを知らないので、 "google-drive-sdkが認証してくれます。" –

答えて

0

Googleドライブにアップロードするには認証が必要です。 Drive API with iOSの認証プロセスは、次のとおりです。

  1. アプリケーションのGDCにoAuthclientIDを作成します。
  2. スコープを設定します。

    NSStringスコープ= @"https://www.googleapis.com/auth/drive.file"
    NSString * keychainItemName = @ "My App";
    NSString * clientId = @ "PUT_CLIENT_ID_HERE";

  3. 保存された資格情報を確認します。

  4. 必要に応じて承認を求めます。
  5. 認証応答を処理します。

認証と承認が完了した後、今すぐUpload in Google Driveとすることができます。

+0

ありがとうございます。私は試してみる。 –

関連する問題