缺少必需的参数:grant_type ngCordova/angular

Required parameter is missing: grant_type ngCordova/angular

我正在使用 Google oAuth 和 ngCordova。虽然我能够检索 access_token,但随后调用 get refresh_token 失败。这是我的请求。

我已确保

  1. 内容类型已设置。
  2. 数据作为表单数据发布,而不是在 url 中作为查询字符串发布。

这是Javascript代码

var clientSecret = encodeURI(result["access_token"]);
var req = {
    method: "POST",
    url:"https://accounts.google.com/o/oauth2/token",
    headers:{
            "Content-Type":"application/x-www-form-urlencoded"
           },
    data : {"code":clientSecret,"client_id":"XXXXX","client_secret":"XXX",
            "redirect_uri":"","grant_type":"authorization_code",scope:""}
};
$http(req).success(...).error(...);

请有人告诉我我做错了什么。

糟糕,问题出在我选择的身份验证方法上。我正在使用 ngCordova 调用 google 身份验证流程,它将 response_type 设置为 token。就我而言,由于我希望在用户授权应用程序后创建 refresh token,因此 response_type 应该设置为 code

我修改了代码,它成功了。