我开发了一项服务,可以从salesforce更新Google文档的内容。使用google drive rest API。 https://developers.google.com/drive/v2/reference/
这些是我遵循的步骤:
获取共享文档的ID。 (我称之为模板)
在云端硬盘上克隆(复制)文档。
以HTML格式获取该文档的内容并将其保存在字符串变量中。
替换该字符串变量上的一些单词。
更新新复制文档的新内容。
效果很好!但我的问题是,如果模板(步骤1)具有方向格局,当我使用新内容更新文档时(步骤5),方向将更改为纵向。
以下是我的要求:
POST https://www.googleapis.com/drive/v2/files/FILEID/copy
public String post(String url, String jsonStr) {
HttpRequest req = createRequest();
req.setEndpoint(url);
req.setMethod('POST');
req.setHeader('Content-Type','application/json');
req.setBody(jsonStr);
HttpResponse res = sendRequest(req);
if (isOK(res)) {
return res.getBody();
}
throw buildResponseException(res);
}
复制文件后,它返回新创建文件的参数,包括“exportLinks”。所以我得到了“text / html”导出链接。并对该URL进行GET。
PUT https://www.googleapis.com/upload/drive/v2/files/FILEID?uploadType=media
public String put(String url, Blob jsonStr) {
HttpRequest req = createRequest();
req.setEndpoint(url);
req.setMethod('PUT');
req.setHeader(HTTP_HEADER_CONTENT_TYPE, 'text/html');
req.setHeader(HTTP_HEADER_CONTENT_LENGTH, String.valueOf(jsonStr.size()));
req.setBodyAsBlob(jsonStr);
HttpResponse res = sendRequest(req);
if (isOK(res)) {
return res.getBody();
}
throw buildResponseException(res); }
我很确定问题是在更新内容之后但我还没找到原因。此外,我使用了API的v3并且行为相同。