迅速。无法使用google drive api从个人google驱动器接收信息

时间:2017-12-11 22:00:09

标签: swift google-drive-api google-signin

您好我正试图查看我在谷歌硬盘上存储的文件。登录过程没有问题,但是一旦我尝试在google驱动器上请求文件列表,我就会收到此错误:

  

错误域= com.google.GTLRErrorObjectDomain代码= 403“超出未经身份验证的使用的每日限制。继续使用需要注册。”

我按照谷歌驱动器文档进行安装,但无论我做什么,我都会一遍又一遍地得到错误。

以下是我viewDidLoad的样子:

var error: NSError?
GGLContext.sharedInstance().configureWithError(&error)

if error != nil {
    print(error!)
    return
}

GIDSignIn.sharedInstance().uiDelegate = self
GIDSignIn.sharedInstance().delegate = self
GIDSignIn.sharedInstance().scopes = scopes

let googleSignIn = GIDSignInButton(frame: CGRect(x: 0, y: 0, width: 100, height: 50))
googleSignIn.center = view.center

view.addSubview(googleSignIn)

这是用户成功登录时的功能:

func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!) {
    if error != nil {
        print(error)
        return
    }

    print("\n")
    print(user.profile.email)
    print("\n")

    let query = GTLRDriveQuery_FilesList.query()
    query.pageSize = 10
    service.executeQuery(query, delegate: self, didFinish: #selector(displayResultWithTicket(ticket:finishedWithObject:error:))
    )

}

我确实正确打印了我的电子邮件,因此我知道它已登录,如果打印我的电子邮件,则会立即显示错误。

这是displayResultWithTicket函数:

@objc func displayResultWithTicket(ticket: GTLRServiceTicket,
                             finishedWithObject result : GTLRDrive_FileList,
                             error : NSError?) {

    if let error = error {
        print(error)
        return
    }

    if let files = result.files, !files.isEmpty {
        print("Files:\n")
        for file in files {
            print(file.name!)
            print(file.identifier!)
        }
    } else {
        print("No files found")
    }
}

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

要说明您的错误,此文档说明您已达到Google Drive API最高请求率。每种限制因您使用的请求类型而异。建议Batch the request

另外,请确保Google+ API的状态为ON。转动ON后等待几分钟,确保在再次尝试之前获得新的令牌。

有关此错误的参考,您可以查看此SO帖子。