requestBody for Android Google Play Oauth2 gtalk authToken中的正确凭据

时间:2013-04-18 13:30:58

标签: android oauth-2.0 httpclient google-oauth

运行下面的代码我得到“错误”:“unauthorized_client”。需要帮助查明我做错了什么。 我想在Android应用中使用此功能来启用Google Talk(xmpp已经存在XABBER fork
阅读much关于如何做到这一点,现在来Google Api Console setup 我选择了 - 已安装应用程序的客户端ID
- 已安装的应用程序类型=其他
- 仅启用Google Play Android Developer API(绿色切换)

我从oauth2获取身份验证令牌:https://www.googleapis.com/auth/googletalk。 (用户批准屏幕) 什么问题我没有输入“其他”的SHA1指纹或包名称所以也许这就是问题

代码:

     HttpClient client1 = new DefaultHttpClient();
     HttpPost request1 = new HttpPost("https://accounts.google.com/o/oauth2/token" );
     request1.setHeader("Content-type", "application/x-www-form-urlencoded");

     //Please make this custom with you're credentials
     String requestBody1 = 
            "code="+authToken+
            "&client_id=749825062016ia.apps.googleusercontent.com"+      
            "&client_secret=jQ1nUrAYUIBUf6hN5pwPE" +
            "&redirect_uri=urn:ietf:wg:oauth:2.0:oob" +
            "&grant_type=authorization_code";

     try {
         request1.setEntity(new StringEntity(requestBody1));
     } catch (UnsupportedEncodingException e) {
         e.printStackTrace();
     }

     /* Checking response */
     try {
         HttpResponse response = client1.execute(request1);
         String results = "ERROR";
         results = EntityUtils.toString(response.getEntity());
         LogManager.i("STACK", "Response::" + results);
     } catch (IOException e) {
         e.printStackTrace();  
     }

1 个答案:

答案 0 :(得分:0)

我认为您应该使用“Android”类型注册您的应用程序。然后,系统会要求您提供允许Android平台识别您的应用程序的信息(例如包名和证书)。