当前位置: 首页 > 知识库问答 >
问题:

未收到Google驱动器更改的Webhook通知

邹玮
2023-03-14

>

  • 在开发人员控制台的IAM下为我的服务帐户生成私钥
  • 在开发人员控制台中我的应用程序的域验证下添加了我的回调域

    使用下面的代码为我的应用程序注册web钩子

    java.io.File file = new java.io.File("/xyz.p12");
    FileInputStream fis = new FileInputStream(file);
    PrivateKey serviceAccountPrivateKey = SecurityUtils.loadPrivateKeyFromKeyStore(SecurityUtils.getPkcs12KeyStore(), fis, "notasecret", "privatekey", "notasecret");
    
        JsonFactory jsonFactory = new JacksonFactory();
                            HttpTransport t = GoogleNetHttpTransport.newTrustedTransport();
        GoogleCredential gc = new GoogleCredential.Builder().setTransport(t)
         .setJsonFactory(jsonFactory)
         .setServiceAccountScopes(Collections.singleton(DriveScopes.DRIVE))
         .setServiceAccountPrivateKey(serviceAccountPrivateKey)
         .setServiceAccountId("xyz")
         .setServiceAccountUser("abc")
         .build();
        Drive drive = new Drive.Builder(t, jsonFactory,null).setHttpRequestInitializer(gc)
         .setApplicationName("xyz").build();
        Channel channel = new Channel(); 
    String uid = UUID.randomUUID().toString(); 
    System.out.println(" UID :: " + uid);
    channel.setId(uid);
    channel.setType("web_hook");
    channel.setAddress("--- Callback URL");
    StartPageToken pageToken = drive.changes().getStartPageToken().execute();
    Channel c = drive.changes().watch(pageToken.getStartPageToken(), channel).execute();
    

    代码运行成功,我也得到了一个对webhook的调用,作为注册的一部分(可能是)。

  • 共有1个答案

    白驰
    2023-03-14

    请注意,观察请求不会成功,除非当前用户或服务帐户拥有或有权访问此资源,如本文档所述。

    每个可观察驱动器API资源在以下形式的URI上都有一个关联的观察方法:

    https://www.googleapis.com/apiname/apiversion/resourcepath/watch

     类似资料:
    • 自从Drive SDK v3以来,我们能够在文件更改时从Google Drive接收推送通知。目前,我正在使用Python开发一个驱动器应用程序,我希望收到这样的通知。我真的需要一个web服务器吗?或者我可以用套接字或类似的东西来实现这个? 我知道我可以通过轮询changes.list方法来获取更改,但我希望避免这种情况,因为有太多API调用。如果一个文件发生了变化,是否有更好的方法来获得通知?

    • 我需要一些关于谷歌硬盘C#示例程序的帮助。。。 我使用了这个所谓的“教程”/“示例”: https://developers.google.com/drive/examples/dotnet 这里的代码是: https://code.google.com/p/google-drive-sdk-samples/source/checkout 我在这里上传了我的(只是稍微修改过的)源代码,以防任何人没

    • 当我订阅驱动器帐户的所有更改时,有时我会收到带有错误ID的更改。根据我的观察,特定文件的变化是在一段时间内聚集在上一次变化中的。 例如:如果我更改了驱动器中的文件,如果我收到了3个ID为“#21、#22、#23”的通知,我希望我可以得到“#23”的更改,如果该文件没有更多的更改。但有时我收到的上次更改的id大于它存在的id。当我使用API changes list时,我得到lastlargestC

    • 我正在尝试Google Drive API V3。 拥有一些共享驱动器文件夹的访问权限,并且是所有这些资源的管理员,我想获取一个通过查询筛选的特定文件夹。 出于任何原因,当我尝试按照留档建议插入查询时,它会响应一个错误,这个错误不是很描述性,也不利于调试: 此外,如果我不带条件地执行查询,则响应会成功,并显示整个共享驱动器: 有什么帮助吗? 谢谢

    • 一切看起来都很好,但我不知道问题到底出在哪里。我希望得到帮助

    • 有人知道我在哪里犯错吗?谢谢你的帮助。