将Google Apps Marketplace应用程序迁移到带有其他范围的oAuth 2.0

时间:2014-04-18 07:26:44

标签: google-apps-marketplace

我们在旧市场上使用oauth 1.0的应用程序。我们正在为新市场迁移到oauth 2.0。我们使用UpgradeableApp API对现有域进行迁移。我按照此处指定的步骤进行操作:https://developers.google.com/apps-marketplace/v1migratev2

如上述链接中的先决条件所述:新旧应用的范围必须兼容。但我们的新应用程序还有一些额外的范围。有没有办法在迁移时授予对这些附加范围的访问权限。

2 个答案:

答案 0 :(得分:1)

只有域管理员或用户才能批准其他范围。

域名管理员在升级后会收到电子邮件通知。

在您的oauth2.0应用中,您可以检测是否所有范围都已获得批准。如果没有,您可以向用户显示相应的消息以联系域管理员以获得批准范围。

答案 1 :(得分:0)

为此,我们应该在旧的和新的列表中具有相同的范围。我也面临着将旧用户迁移到新用户的同样问题。请检查以下代码我如何从旧用户迁移到新用户,但每次我获得401 UnAuthorized时,我可以知道我为此缺少的。

String url = String.Format("https://www.googleapis.com/appsmarket/v2/upgradableApp/{0}/{1}/{2}", oldAppId, chromeListing, domain);            
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        request.Method = "PUT";
        request.ContentType = "application/json";
        request.Accept = "application/json";
        request.ProtocolVersion = HttpVersion.Version11;
        request.Credentials = CredentialCache.DefaultCredentials;
        request.Headers.Add("Authorization", "OAuth");
        Hashtable postObj = new Hashtable();
        postObj["Consumer Key"] = oldClientId;
        postObj["Consumer Key Secret"] = oldSecret;
        String s1 = new JavaScriptSerializer().Serialize(postObj);
        var bs = Encoding.UTF8.GetBytes(s1);
        using (Stream reqStream = request.GetRequestStream())
        {
            reqStream.Write(bs, 0, bs.Length);
        }
        using (WebResponse response = request.GetResponse())
        {
            using (var sr = new StreamReader(response.GetResponseStream()))
            {
                result = sr.ReadToEnd();
                sr.Close();
            }
        }