2016-04-12 7 views
4

Die Client-ID, Geheimnis usw. sind korrekt. Ich überprüfte sie erneut. Google + Anmelden funktioniert und ich bekomme auch Zugang Token, aber wenn ich versuche, Youtube Video Rating API zu verwenden, gibt es 403 verbotenen Fehler in realen Geräten. Es funktioniert jedoch gut im Simulator. Was kann das Problem hier sein? Kann jemand helfen? Jede Hilfe wird geschätzt. DankeRe: Youtube Video Bewertung api (v3) funktioniert im Simulator, aber gibt 403 Fehler in realen Geräten

P.S. Bevor ich nicht "gc.setScope (" https://www.googleapis.com/auth/youtube.force-ssl ")" diese Zeile im Code verwendet habe, gibt es denselben verbotenen Fehler im Simulator, aber jetzt habe ich die Zeile hinzugefügt und arbeite im Simulator, aber gebe den 403 verbotenen Fehler in echt Geräte.

sign.addActionListener((e) -> { 
    String clientId = "873649282964-7r6088ua0jhoua2tngpblhf4u8elda55.apps.googleusercontent.com"; 
    String redirectURI = "https://www.youtube.com/"; 
    String clientSecret = "_T7cyd-kWQKDzH0ZwiIeq1jr"; 
    gc = GoogleConnect.getInstance(); 
    gc.setClientId(clientId); 
    gc.setRedirectURI(redirectURI); 
    gc.setClientSecret(clientSecret); 
    gc.setScope("https://www.googleapis.com/auth/youtube.force-ssl"); 
    gc.setCallback(new LoginCallback() { 
     @Override 
     public void loginFailed(String errorMessage) { 
      System.out.println("errorMessage"); 
     } 

     @Override 
     public void loginSuccessful() { 
      System.out.println("login success"); 
     } 
    }); 
    if (!gc.isUserLoggedIn()) { 
     gc.doLogin(); 
    } else { 
     //get the token 
     token = gc.getAccessToken().getToken(); 
    } 
}); 

Button like = new Button("Like"); 
likeForm.add(like); 

like.addActionListener((e) -> { 
    token = gc.getAccessToken().getToken(); 
    ConnectionRequest cr = new ConnectionRequest() { 

     @Override 
     protected void readResponse(InputStream input) throws IOException { 
      super.readResponse(input); 
     } 

     @Override 
     protected void postResponse() { 
      like.setText("Like: " + "ok"); 
     } 
    }; 
    cr.setPost(true); 
    cr.setUrl("https://www.googleapis.com/youtube/v3/videos/rate?id=" + "lIHr4ZVMBoo" + "&rating=like&access_token="+ token); 
    System.out.println("geturl " + cr.getUrl()); 
    cr.setDuplicateSupported(true);  
    NetworkManager.getInstance().addToQueueAndWait(cr); 
}); 

Fehlerprotokoll:

04-15 08:05:10.761: E/GMPM(5344): getGoogleAppId failed with status: 10 
04-15 08:05:10.761: E/GMPM(5344): Uploading is not possible. App measurement disabled 
04-15 08:06:02.901: E/Volley(2900): [154] BasicNetwork.performRequest: Unexpected response code 403 for https://www.googleapis.com/plus/v1/people/me 
+0

Laut diesem [Dokument] (https://developers.google.com/youtube/v3/guides/auth/devices#OAuth2_Calling_a_Google_API) wird die Anwendung möglicherweise nicht registriert, wenn die API einen HTTP 403-Antwortcode zurückgibt . Viele APIs legen für nicht registrierte Anwendungen ein Abfragevolumenlimit von 0 fest und geben einen 403-Antwortcode zurück, wenn das Abfragevolumenlimit überschritten wird. Auf dieser [Seite] (https://developers.google.com/youtube/android/player/register#create_project) erfahren Sie, wie Sie Ihre App einschließlich des Zertifikats der digital signierten .apk-Datei in der Google Developers Console registrieren. – KENdi

+0

@KENdi nein, ich habe all das gemacht. Das Fehlerprotokoll zeigt "BasicNetwork.performRequest: Unerwarteter Antwortcode 403 für https://www.googleapis.com/plus/v1/people/me" – beck

Antwort

0

Sie drucken Login Fehler oder Erfolg der Konsole stattdessen eine UI zeigt, die auf dem Gerät sichtbar. Ihre Anmeldung ist möglicherweise nicht erfolgreich.

Soweit ich mich erinnere die Google APIs benötigen auch die Authorization HTTP-Header wie wir es verwendet here aber wenn es am Simulator funktioniert Ich bin nicht sicher, dass dies das Problem ist.