尝试在顶点创建一个功能,在Salesforce中创建新记录时会创建Google云端硬盘文件夹。
我已经设法验证并处理GET请求就好了。我的问题是关于POST请求。下面的代码应该创建一个文件夹,其标签在"标题"参数。脚本执行,而是创建一个没有标签的无扩展名文件。
public void getDriveFiles(HttpResponse authResponse) {
http h = new Http();
Httprequest req = new HttpRequest();
HttpResponse res = new HttpResponse();
Map<String, Object> responseObject = (Map<String, Object>) JSON.deserializeUntyped(authResponse.getBody());
req.setEndpoint('https://www.googleapis.com/upload/drive/v2/files');
req.setMethod('POST');
req.setHeader('Content-type', 'application/json');
req.setHeader('Authorization', 'Bearer '+responseObject.get('access_token'));
String jsonData = '{"title":"NewFolder", "mimeType":"application/vnd.google-apps.folder"}';
req.setBody(jsonData);
res = h.send(req);
system.debug('Response ='+ res.getBody() +' '+ res.getStatusCode());
}
我觉得这是我的要求,但我不知道如何解决这个问题。
答案 0 :(得分:0)
您使用了错误的端点。而不是file
端点,您将发布到content
端点。
所以
req.setEndpoint( 'https://www.googleapis.com/upload/drive/v2/files');
应该是(对于v2 API)
req.setEndpoint( 'https://www.googleapis.com/drive/v2/files');
或(对于v3 API)
req.setEndpoint( 'https://www.googleapis.com/drive/v3/files');
如果你使用v3(你可能应该这样做),你的json应该改变
String jsonData ='{“name”:“NewFolder”,“mimeType”:“application / vnd.google-apps.folder”}';