Google Plus媒体插入 - Google Domains API - 403禁止使用

时间:2014-03-10 14:01:34

标签: javascript jquery google-plus

我正在尝试使用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

1 个答案:

答案 0 :(得分:2)

首先,确保userID属于您已经过身份验证的用户(可能通过此OAuth flow)。与people.get等方法不同,此方法需要身份验证,并且不能仅使用ID进行调用,除非该ID是当前经过身份验证的用户。这就是我们建议使用特殊值me以避免混淆的原因。

其次,您需要确定经过身份验证的用户是Google Apps用户。例如,如果用户是GMail用户,则该请求将获得403,因为非域名帐户不允许使用Google+域名API。