我正在尝试使用Javascript / JQuery将图片上传到Google+;我有一个访问令牌,我可以使用它来成功验证POST请求,但当我尝试使用G +媒体插入(https://developers.google.com/+/domains/api/media/insert)时,我收到以下响应:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "forbidden",
"message": "Forbidden"
}
],
"code": 403,
"message": "Forbidden"
}
}
我没有配置域范围的委派,因为我希望用户登录以生成访问令牌(这可能是问题吗?)。我在开发者控制台中启用了Google+域名API,相关的范围已经到位,但我无法弄清楚为什么会收到403错误。正在使用以下AJAX请求:
var postForm = new FormData();
postForm.append("source",[code which generated a blob]);
postForm.append("displayName", "TestUpload");
$.ajax({
url: "https://www.googleapis.com/upload/plusDomains/v1/people/me/media/cloud",
headers: {"Authorization": "Bearer " + acToken},
type:"POST",
uploadType: "multipart/related",
processData:false,
contentType:false,
cache:false,
data: postForm,
});
任何帮助将不胜感激,如果需要,我可以提供更多信息。
PS:我实际上在网址中实际使用的是用户ID而不是me
答案 0 :(得分:2)
首先,确保userID属于您已经过身份验证的用户(可能通过此OAuth flow)。与people.get等方法不同,此方法需要身份验证,并且不能仅使用ID进行调用,除非该ID是当前经过身份验证的用户。这就是我们建议使用特殊值me
以避免混淆的原因。
其次,您需要确定经过身份验证的用户是Google Apps用户。例如,如果用户是GMail用户,则该请求将获得403,因为非域名帐户不允许使用Google+域名API。