2012-06-10 37 views
10

Sto utilizzando le librerie client di Google e sto provando a effettuare una richiesta GET all'API di Google Play.Credenziali Google: questo account sviluppatore non possiede l'applicazione

 GoogleCredential credential= new GoogleCredential.Builder().setTransport(netHttpTransport) 
       .setJsonFactory(jacksonFactory) 
       .setServiceAccountId(CLIENT_ID) 
       .setServiceAccountScopes(SCOPE) 
       .setServiceAccountPrivateKeyFromP12File(file) 
       .build(); 
       credential.refreshToken();  
     HttpRequestFactory requestFactory =netHttpTransport.createRequestFactory(credential); 
     GenericUrl url = new GenericUrl(URI); 
     HttpRequest request = requestFactory.buildGetRequest(url); 
     HttpResponse response = request.execute(); 

ottengo

{ 
    "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." 
} 

La mia app è inedita, vorrei che causare il problema?

+0

Ho lo stesso problema ... –

+0

Domanda simile: http://stackoverflow.com/questions/11115381/unable-to-get-the-subscription-information-from-google-play-android-developer-ap –

+0

Ho finalmente risolto questa domanda, controlla questo: http://stackoverflow.com/questions/11115381/unable-to-get-the-subscription-information-from-google-play-android-developer-ap –

risposta

0

Ho il sospetto che il problema sia esattamente nella pubblicazione. Devi prima collegare l'app al tuo account (sviluppatore) e quindi riceverai CLIENT_ID e altre credenziali (come la chiave segreta e così via).

+0

"Bind la tua app sul tuo account "? Come? Dove? Nell'API di Google Console? Nel Google Play? –

+0

Se vuoi pubblicare l'app per Android su Google Play, devi prima assegnare la tua app al tuo "account editore" [qui] (https://play.google.com/apps/publish/). Se si desidera utilizzare altre API, è necessario consultare il sito di home page dell'API appropriato. –

+0

Considera che la registrazione di ** nuovo ** account di pubblicazione costa $ 25. Ma aggiungere nuove app al tuo account esistente è gratuito. –

4

Il problema è che si sta utilizzando il flusso di account di servizio OAuth 2.0 per autorizzare l'API di Android-publisher. Lo stavo facendo allo stesso modo. Tuttavia, Google richiede di utilizzare il flusso di applicazioni del server Web, il che è ridicolo, poiché è necessaria un'interazione umana per consentire l'accesso all'API.

Fortunatamente c'è un modo per aggirarlo. Devi solo ottenere il refresh_token, archiviarlo e continuare a utilizzarlo per le future chiamate API. I wrote about it in more detail sul mio blog.

+0

Sfortunatamente il tuo link è morto, ogni possibilità di ripubblicare le informazioni da qualche altra parte o, ancora meglio, aggiungerlo a questa risposta? – Jean

+0

@Jean Penso che a Milano si stia riferendo [sotto questo ora] (http://milancermak.wordpress.com/2012/08/24/server-side-verification-of-google-play-subsc) – Wojciech

+0

Grazie Wojciech .Ho riparato il collegamento ora, dato che dovevo migrare lontano da Posterous. –

6

Ho lo stesso problema. Si verifica perché autorizzi l'utente nelle API di Google che non possiede l'applicazione e cerca di ottenere i dati che appartengono alla tua app.

In questo argomento è ben descritto. http://support.google.com/googleplay/android-developer/bin/answer.py?hl=en&answer=2528691&topic=16285&ctx=topic

È necessario autorizzare OAuth2 il proprietario dell'applicazione, quindi utilizzare l'API di Google con il token ottenuto.

+1

Per aggiungere quello che ikrovorotenko ha detto passare il token di accesso dello sviluppatore o il token di accesso dell'utente che è stato autorizzato dallo sviluppatore per accedere ai dati finanziari delle app. – Searock

1

Abbiamo anche faticato con questo problema perché volevamo convalidare un acquisto sui nostri server per sbloccare alcune funzionalità. Abbiamo provato più soluzioni e framework, scritti da altri utenti della community e persino implementazioni ufficiali, ma nessuno ha funzionato.

Si è scoperto che tutto ciò che dovevamo fare era rinnovare il nostro token OAuth (che abbiamo appena creato) e poi tutto ha iniziato a funzionare.

Problemi correlati