java - Podio API - Java - 将文件附加到现有项目

标签 java podio

我一直在四处寻找与此相关的任何信息,但到目前为止我还没有找到任何有用的信息。我对跑道 API 比较陌生,我正在尝试将我在程序中创建的文件上传/附加到特定应用程序中的特定项目。我已成功将文件上传到 API,并将其添加到特定项目的文件列表中,但它不会“坚持”/更新以具有任何永久性。在该方法的末尾,我可以调用 getFiles() 并且该文件将在那里,但是该文件在跑道上不可见,并且如果我在其他时间调用 getFiles() 它就不会在那里。这是我的代码:

public static void uploadTimeSheet(File timeSheet){
    FileAPI fileApi = apiFactory.getAPI(FileAPI.class);
    int fileId = fileApi.uploadFile(timeSheet.getName(), timeSheet);
    com.podio.file.File timeSheetUploaded = fileApi.getFile(fileId);
    List<com.podio.file.File> files = new ArrayList<com.podio.file.File>();
    files = userItem.getFiles();
    files.add(timeSheetUploaded);
    userItem.setFiles(files);
}

userItem 是我要将文件上传到的特定项目。我绝不是一个经验丰富的编码员,但在我看来,通过调用 setFiles(files) 我只更新项目 userItem 的本地版本?如果是这种情况,那么我如何用我自己的版本更新 podio 的 userItem 版本?如果我完全找错了树,我哪里出了问题?我一直在寻找更新项目的方法,但它们似乎仅用于更新字段/字段值。

提前致谢!

最佳答案

遗憾的是,Java SDK 中不提供附加文件方法。您可以使用其他 SDK,例如 ruby​​

 # Attach a file to an existing reference
    # @see https://developers.podio.com/doc/files/attach-file-22518
    def attach(id, ref_type, ref_id)
      Podio.connection.post do |req|
        req.url "/file/#{id}/attach"
        req.body = {:ref_type => ref_type, :ref_id => ref_id}
      end
    end

如果您真的想使用 JAVA SDK,我将更新 JAVA SDK 相应的方法,或者有一个解决方法,您可以使用 updateItem 将文件更新为现有项目。

public void updateItemFieldValues(int itemId, int fieldId,
            List<Map<String, Object>> values, boolean silent, boolean hook) {
        getResourceFactory()
                .getApiResource("/item/" + itemId + "/value/" + fieldId)
                .queryParam("silent", silent ? "1" : "0")
                .queryParam("hook", hook ? "1" : "0")
                .entity(values, MediaType.APPLICATION_JSON_TYPE).put();
    }
}  

上面的文件 ID 必须通过下面的方法派生 enter image description here

让我知道这有帮助。

关于java - Podio API - Java - 将文件附加到现有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38772448/

相关文章:

angularjs - 使用 Javascript 多次调用 REST API 或一次调用大型响应正文

java - 从 Spring JDBC 模板执行 SQL 文件

java - 通过输入数组中元素的第一个字母来填充 Spinner 类

跑道 API : How to get a file id given an item id

javascript - 在跑道中将计算日期字段设置为 null(因此使用 javascript)

javascript - 对跑道应用程序进行应用程序身份验证时收到 400 响应

java - 主屏幕小部件运行时,数据对象的静态数组列表是否会导致内存泄漏

Java:遍历并将元素插入排序链表的最佳方法是什么?

java - 我正在努力在 Uno 游戏中实现 allocateCards 方法,请问我可以提供一些关于如何实现该方法的建议吗?

python - 使用delete_values参数的API调用字段删除不起作用