1

Я получаю ту же проблему, что и в this postОшибка API Google Play

. мы использовали почти точно такой же код. я попробовал и с идентификатором клиента и адресом электронной почты учетной записи службы Google в ниже mehotd

setServiceAccountId(GOOGLE_SERVICE_CLIENT_EMAIL) OR 
setServiceAccountId(GOOGLE_CLIENT_ID) 

ошибка изменяется с изменением в/с ид. если я использовать идентификатор клиента, ошибка

400 Bad Request { "Ошибка": "invalid_grant"}

и если я использую сервис электронный идентификатор, ошибка

401 Unauthorized { 
"code" : 401, "errors" : [ { 
    "domain" : "androidpublisher", 
    "message" : "This developer account does not own the application.", 
    "reason" : "developerDoesNotOwnApplication" } ], "message" : "This developer account does not own the application." } 

любой идея?

+0

ли вы когда-нибудь найти решение? – Kalina

ответ

1

Похоже, что Google Play API в настоящее время не работает с учетными данными службы (безумие). Существует еще один вопрос по вопросу here. Вы можете прочитать об учетных записях службы Google here. Вы можете прочитать об аутентификации для Android API Google Play here.

После того, как вы сделали танец на Google API консоли, чтобы получить refresh_token вы можете получить маркер доступа, как это:

private String getAccessToken() 
{ 

    HttpClient client = new DefaultHttpClient(); 
    HttpPost post = new HttpPost("https://accounts.google.com/o/oauth2/token"); 
    try 
    { 
     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(4); 
     nameValuePairs.add(new BasicNameValuePair("grant_type", "refresh_token")); 
     nameValuePairs.add(new BasicNameValuePair("client_id",  "YOUR_CLIENT_ID); 
     nameValuePairs.add(new BasicNameValuePair("client_secret", "YOUR_CLIENT_SECRET")); 
     nameValuePairs.add(new BasicNameValuePair("refresh_token", "YOUR_REFRESH_TOKEN")); 
     post.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

     HttpResponse response = client.execute(post); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); 
     StringBuffer buffer = new StringBuffer(); 
     for (String line = reader.readLine(); line != null; line = reader.readLine()) 
     { 
      buffer.append(line); 
     } 

     JSONObject json = new JSONObject(buffer.toString()); 
     return json.getString("access_token"); 
    } 
    catch (IOException e) { e.printStackTrace(); } 
    catch (JSONException e) { e.printStackTrace(); } 
    return null; 
} 
Смежные вопросы